基于Artname字段中的不同值,我想获取常见的LND_ISO值。
所以通常的值是AD [结果是AD]
如何通过LINQ实现。
答案 0 :(得分:1)
在GroupBy
上使用Artname
进行简单分组,然后在合并的结果上相交以获得输出
var result = data.GroupBy(
p => p.Artname,
p => p.LND_ISO,
(key, g) => new { Artname = key, LND_ISO = g.ToList() }).ToList();
var output = result[0].LND_ISO;
foreach(var item in result)
{
output = output.Intersect(item.LND_ISO);
}
答案 1 :(得分:0)
您可以这样做:
var groups = from r in rows
group r by r.Artname
into g
select g;
var itemsInAllGroups = (from p in rows
where groups.All(g => g.Any(item => item.LND_ISO == p.LND_ISO))
select p.LND_ISO).Distinct().ToList();