从C#中的字符串中删除重复的单词

这是我的代码:

class Program { static void Main(string[] args) { string sentence = string.Empty; sentence = Console.ReadLine(); string[] sent = sentence.Split(' '); //to be sorted alphabetically var x = from k in sent orderby k select k; foreach (string s in x) { Console.WriteLine(s.ToLower()); } Console.ReadLine(); } } 

有什么方法可以找到并删除重复的单词,或者我应该制作自己的方法?

使用区别:

 foreach (string s in x.Distinct()) { Console.WriteLine(s.ToLower()); } 

您可以使用Linq的Distinct扩展方法:

 var sent = sentence.Split(' ').Distinct(); 

您也可以使用它来比较字符串的情况 – 例如"WORD""word"将被视为重复:

 var sent = sentence.Split(' ').Distinct(StringComparer.CurrentCultureIgnoreCase); 

使用System.Linq 区别 :

 foreach (string s in x.Distinct()) 

这应该做你要问的一切:

 class Program { static void Main(string[] args) { string sentence = string.Empty; sentence = Console.ReadLine(); var sent = sentence .Split(' ') .Distinct() .OrderBy(x => x); foreach (string s in sent) { Console.WriteLine(s.ToLower()); } Console.ReadLine(); } } 

希望能帮助到你!