c# - 如何使用 LINQ 根据条件从单个数据表中找出重复的列值
问题描述
基于来自 Artname 字段的不同值,我想获得常见的 LND_ISO 值。
- TestCPCN-红色 - AD,AG
- 测试CPCN-Green-AD
- TestCPCN-Blue-AD,AG
所以共同的价值是AD [结果是AD]
我怎样才能通过LINQ实现。
解决方案
GroupBy
简单地使用on进行分组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);
}
推荐阅读
- linux - 如何将此命令的结果作为变量存储在我的 bash 脚本中?
- r - 将两个不同组的 cumsum 的结果分成两个不同的列?
- elixir - put_assoc 抱怨类型错误
- python - 如何将一个 csv 文件中的列附加到第二个 csv(具有不同的索引)
- ray - 如何将试用输出定向到文件
- firebase - Firebase 函数——如何处理在快速应用准备好导出之前需要等待异步进程结束的问题
- vba - 为什么我的代码没有生成正确的数据透视表?
- azure - spring-cloud-kubernetes 停止监听 ConfigMap 事件
- html - 如何在具有不同大小的子 div 的父 div 中居中文本(flexbox)
- reactjs - 获取错误 TS2322:类型“任何”不可分配给类型“从不”