2013-10-14 66 views
3

这里是我的代码:从字符串中删除重复的单词在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(); 
     } 
    } 

有没有发现并删除重复的话,或者我应该做我自己的方法的方法?

+0

可能的重复[在C#中从列表中删除重复项](http://stackoverflow.com/questions/47752/remove-duplicates-from-a-listt-in-c-sharp) –

回答

4

使用distinct:

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

重复的答案。 –

8

使用System.Linq的Distinct

foreach (string s in x.Distinct()) 
9

你可以使用Linq的Distinct扩展方法:比较时,他们

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

您也可以使用此忽略字符串的情况下—例如"WORD""word"会被认为是重复的:

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

这应该做的一切你问:

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(); 
    } 
} 

希望它能帮助!