我需要使用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