我需要使用linq從列表中選擇重複項,並返回陣列中包含重複項的每個數組的列表。例如,如果我的列表是在列表中選擇重複項linq
{2,2,3,13,4,4,15,5,7,8,9,12,13}
然後,我需要回到
{2,2},{4,4}
下面的代碼只返回每個單個值複製
int[] listOfItems = new[] {2,2,3,13,4,4,15,5,7,8,9,12,13};
var duplicates = listOfItems
.GroupBy(i => i)
.Where(g => g.Count() > 1)
.Select(g => g.Key);
foreach (var d in duplicates)
Console.WriteLine(d);
這將產生以下:
3210
感謝,反而會這個數組的返回列表? – Smith 2012-08-14 07:42:06
@史密斯:不,它會返回一系列「IGrouping」組。將編輯,以獲得您的陣列列表... – 2012-08-14 07:45:04
@Downvoter:照顧評論? – 2012-08-14 07:48:23