我有多个合并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
答案 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();