2008-10-29 24 views
3

如果我有以下字符串:如何从使用LINQ的字符串中获取重复字符数组?

string s = "abcdefghab"; 

那我怎么得到一个字符串(或CHAR [])刚刚正在使用C#和LINQ重复原字符串中的字符。在我的例子中,我想以“ab”结尾。

虽然不是必需的,我想这样做的LINQ的单线,迄今已想出了:

s.ToCharArray().OrderBy(a => a)... 

回答

7
String text = "dssdfsfadafdsaf"; 
var repeatedChars = text.ToCharArray().GroupBy(x => x).Where(y => y.Count() > 1).Select(z=>z.Key); 
7
string theString = "abcdefghab"; 

//C# query syntax 
var qry = (from c in theString.ToCharArray() 
      group c by c into g 
      where g.Count() > 1 
      select g.Key); 

//C# pure methods syntax 
var qry2 = theString.ToCharArray() 
      .GroupBy(c => c) 
      .Where(g => g.Count() > 1) 
      .Select(g => g.Key); 
7

此外,一个字符串是一个IEnumerable已经,所以你不需要调用ToCharArray();

var qry = (from c in theString 
      group c by c into g   
      where g.Count() > 1   
      select g.Key); 

即离开QRY作为一个IEnumerable,但如果你真的需要一个char [],那一样容易qrt.ToArray()

相关问题