技术频道导航
HTML/CSS
.NET技术
IIS技术
PHP技术
Js/JQuery
Photoshop
Fireworks
服务器技术
操作系统
网站运营

赞助商

分类目录

赞助商

最新文章

搜索

C#从字符串中删除重复的单词的两种方法

作者:admin    时间:2023-5-1 1:20:8    浏览:

本文介绍C#从字符串中删除重复的单词的两种方法,一种是使用for循环,一种是使用Linq,而后者更简单,代码更少。

1、使用for从字符串中删除重复的单词

C#代码

string SetenceString = "red white black white green yellow red red black white";
string[] data = SetenceString.Split(' ');
StringBuilder sb = new StringBuilder();
for (int i = 0; i < data.Length; i++)
{
  string temp = " ";
  if (i == 0)
  {
    temp = data[i].ToString();
    sb = sb.Append(temp + " ");
  }
  else
  {
    for (int j = 1; j < data.Length; j++)
    {
      string temp2 = data[j].ToString();
      string strnew = sb.ToString();
      string[] Kdata = strnew.Split(' ');
      bool isnoduplicate = false;
      for (int k = 0; k < Kdata.Length; k++)
      {
        string temp3 = Kdata[k].ToString();
        if (temp3 != "")
        {
          if (temp2 == temp3)
          {
            isnoduplicate = false;
            break;
          }
          else
          {
            isnoduplicate = true;
          }
        }
      }
      if (isnoduplicate)
      {
        sb = sb.Append(temp2 + " ");
      }
    }
  }
}
Console.WriteLine(sb);
Console.ReadKey();

输出

red white black green yellow 

2、使用Linq从字符串中删除重复的单词

确保你的 .NET 版本4.0以上。

程序先添加System.Linq命名空间。

using System.Linq;

C#代码

string str = "One Two Three One";
string[] arr = str.Split(' ');
Console.WriteLine(str);
var a = from k in arr
orderby k
select k;
Console.WriteLine("After removing duplicate words...");
foreach(string res in a.Distinct())
{
  Console.Write(" " + res);
}

输出

One Two Three

System.Linq 命名空间

提供支持某些查询的类和接口,这些查询使用语言集成查询 (LINQ)。

命名空间 System.Linq 位于 System.Core.dllSystem.Core 程序集中。

Enumerable 包含 LINQ 标准查询运算符,这些运算符对实现 IEnumerable<T>的对象进行操作。

Queryable 包含 LINQ 标准查询运算符,这些运算符对实现 IQueryable<T>的对象进行操作。

C#计算字符串中的重复字数

C#代码

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  
using System.Threading.Tasks;  
  
namespace CountRepeatedWordCount  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            string Word;  
            Console.WriteLine("Enter the word!..");  
            Word = Console.ReadLine();   // 在运行时读取输入的字符串  
            var Value = Word.Split(' ');  // 分割字符串并存储在一个变量中  
            Dictionary<string, int> RepeatedWordCount = new Dictionary<string, int>();  
            for (int i = 0; i < Value.Length; i++) //循环已经分割的字符串  
            {  
                if (RepeatedWordCount.ContainsKey(Value[i])) // 检查单词是否存在,更新总数  
                {  
                    int value = RepeatedWordCount[Value[i]];  
                    RepeatedWordCount[Value[i]] = value + 1;  
                }  
                else  
                {  
                    RepeatedWordCount.Add(Value[i], 1);  // 如果字符串重复就不加入字典里,这里是加进去   
                }  
            }  
            Console.WriteLine();  
            Console.WriteLine("------------------------------------");  
            Console.WriteLine("Repeated words and counts");  
            foreach (KeyValuePair<string, int> kvp in RepeatedWordCount)  
            {  
                Console.WriteLine(kvp.Key + " Counts are " + kvp.Value);  // 打印重复的单词及其总数  
            }  
            Console.ReadKey();  
        }  
    }  

步骤 1

复制代码并将其粘贴到 C# 控制台应用程序。

注意
根据你的应用程序名称,创建具有相同名称CountRepeatedWordCount 的应用程序或更改复制的代码。

步骤 2

保存并运行应用程序。

现在,你可以输入字符串并查看输出。

 

总结

本文介绍了C#从字符串中删除重复的单词的两种方法,一种是使用for循环,一种是使用Linq,而后者更简单,代码更少。

相关文章

标签: CSharp  asp.net  Linq  字符串  for  
x
  • 站长推荐
/* 左侧显示文章内容目录 */