我有一个包含类似项目的集合 InstId,PulseID和SheetID在其他项目之上。我想检查集合中的这些值(作为一个组合)是否是不同的,如果它们不是我想输出一个简单的跟踪消息“不唯一:InstId,PulseID和SheetID。
例如,
InstId | PulseID | SheetID |
-----------------------------------------
1 | 1 | 99 |
1 | 1 | 98 |
1 | 1 | 97 |
2 | 1 | 99 |
2 | 1 | 98 |
3 | 1 | 97 |
2 | 1 | 99 |
2 | 1 | 95 |
3 | 1 | 93 |
I would like a trace message which will output the duplicatite like
InstId:2, PulseID: 1, SheetID: 99
我正在查看此链接,它似乎有意义,但我如何得到那些不独特的。 C# Linq Group By on multiple columns
答案 0 :(得分:1)
var result = IQueryableSource.GroupBy(x=>new {A=x.A, B=x.B, C=x.C}).Where(x=>x.Count()>1).Select(x=>x.Key);
答案 1 :(得分:1)
鉴于链接使用查询语法,
怎么样var ans = from item in CollectionOfItems
group item by new { item.InstId, item.PulseID, item.SheetID } into ig
where ig.Count() > 1
select ig.Key;
如果您想要原始收藏品,也可以select ig.First()
。