Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在字符串中查找重复的单词并删除重复的单词_C#_Asp.net - Fatal编程技术网

C# 在字符串中查找重复的单词并删除重复的单词

C# 在字符串中查找重复的单词并删除重复的单词,c#,asp.net,C#,Asp.net,假设我有一个包含许多单词的字符串,例如: string SetenceString= "red white black white green yellow red red black white" 我想删除所有副本,每个单词只返回一次: SetenceString= "red white black green yellow" 我怎样才能用C#做到这一点?非常感谢您的帮助。如果您的文字总是分开的话: String.Join(" ", SetenceString.Split(' ').Dis

假设我有一个包含许多单词的字符串,例如:

string SetenceString= "red white black white green yellow red red black white"
我想删除所有副本,每个单词只返回一次:

SetenceString= "red white black green yellow"

我怎样才能用C#做到这一点?非常感谢您的帮助。

如果您的文字总是分开的话:

String.Join(" ", SetenceString.Split(' ').Distinct())

否则,您应该使用正则表达式,您甚至还没有告诉我们您尝试了什么,但是

string SetenceString = "red white black white green yellow red red black white";
var result = string.Join(" ", SetenceString.Split(' ').Distinct());
Console.WriteLine(result);
输出将是

红白黑绿黄

但是,嘿,这到底是怎么回事

  • 我们用空格分割字符串,以获得字符串数组中的所有单词
  • 我们过去在字符串数组中只获取不同的单词
  • 我们使用
    string.Join
    将所有这些不同的单词与空白组合起来
字符串设置字符串=“红白黑绿黄红黑白”;
string[]data=SetenceString.Split(“”);
HashSet=newhashset();
for(int i=0;i

set
Variable现在只包含唯一的项目

也请在发布前在stackoverflow上搜索。我不敢相信,当你输入这封信时,许多已经存在的重复问题中有一个没有出现。谢谢,我会接受你的回答。解释得很好!
    string SetenceString = "red white black white green yellow red red black white";
    string[] data = SetenceString.Split(' ');
    HashSet<string> set = new HashSet<string>();
    for (int i = 0; i < data.Length; i++)
    {
        set.Add(data[i]);
    }