我有一个集合Col1
,其中每个集合都有一个集合Col2
。
我想知道任何Col2
是否有重复的Value
,并且仅在Col2.Type= "AType"
时才会知道。
Col1 Col2 Type Value
Col1a Col2a AType 10
Col1a Col2b BType 10
Col1a Col2c AType 15
Col1b Col2a AType 10
Col1b Col2b Ctype 20
Col1b Col2c Atype 30
^将返回false
,在Col2中没有重复的AType
Col1 Col2 Type Value
Col1a Col2a AType 10 << Dupe
Col1a Col2b BType 15
Col1a Col2c AType 10 << Dupe
Col1b Col2a AType 10
Col1b Col2b Ctype 20
Col1b Col2c Atype 30
^将返回true
答案 0 :(得分:3)
bool anyDups = Col1
.Any(c1 => c1.Col2
.Where(c2 => c2.Type == "AType")
.GroupBy(c2 => c2.Value)
.Any(g => g.Count() > 1));
答案 1 :(得分:1)
var result = list.Where(a=>a.Type =="AType").
GroupBy(p => p.Type).Select(group => group.First());
答案 2 :(得分:0)
通常我会做类似
的事情var correctTypeValues = Col1.Where(c => c.Type= "AType").Select(c => c.Value);
if(correctTypeValues.Count() == correctTypeValues.Distinct().Count())
{
// no dups
}
虽然基于IsUnique()扩展方法:
if(Col1.Where(c => c.Type= "AType").Select(c => c.Value).IsUnique())
{
// no dups
}