2015-05-12 18 views
0

我在我的winform應用程序中有一個文本框的集合。在IEnumerable中找到重複的文本<TextBox>集合

我需要幫助LINQ查詢來獲取包含重複條目的TextBox(即IEnumerable)的集合。我想利用LINQ。 這個查詢我使用,只是返回重複的條目。但我需要所有重複的條目。

var duplicates = emailAddressList.GroupBy(t => t.Text) 
         .Where(g => !string.IsNullOrEmpty(g.Key)) 
         .SelectMany(grp => grp.Skip(1)) 
         .ToList(); 

任何人都可以幫助我哪裏錯了嗎?

問候

+0

刪除SelectMany行。您將通過包含的文本獲得文本框的分組。即你將會得到{key:「Text」,TextBox [] {包含這個文本的所有文本框}}的列表。 –

回答

3

這個查詢我使用時,只返回重複條目。但我需要 所有重複的條目。

檢查g.Count() > 1和使用SelectMany(g => g)得到所有各重複的組,而不是僅僅重複的(無第一)。

var duplicates = emailAddressList 
    .GroupBy(t => t.Text) 
    .Where(g => !string.IsNullOrEmpty(g.Key) && g.Count() > 1) 
    .SelectMany(g => g) 
    .ToList(); 
相關問題