如何在列表中提取具有相同值的项目数?

时间:2014-02-02 11:37:18

标签: c# winforms list

我有多个合并ID的int列表。我需要获得与具有特定数字的重复项总数相匹配的ID。例如:

int g=3;
List<int> mainlist = new List<int>();
List<int> list1 = new List<int>{1,2,3,4,5,6,7,8,9};
List<int> list2 = new List<int>{2,3,4,5,7,8,9};
List<int> list3 = new List<int>{1,3,5,6,7,9};

mainlist = list1.Concat(list2).Concat(list3).Tolist();

我想获得重复次数等于g的ID

2 个答案:

答案 0 :(得分:3)

您可以对mainlist进行分组,只选择Count() == g

中的这些群组
var IDs = mainlist.GroupBy(n => n).Where(n => n.Count() == g).Select(n => n.Key);

答案 1 :(得分:1)

在这种情况下,

GroupBy是最佳选择,无论如何这是另一种选择:

 mainlist.Where(x => mainlist.Count(i => x == i) == g).ToList();