You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用LINQ查询去重条目,保留唯一Company+Item组合及任意对应Key

解决方案

不需要提前获取Company和Item的去重列表再循环查询,直接使用LINQ的GroupBy方法即可实现需求,核心思路是将Company和Item的组合作为分组键,每个分组取第一条数据即可:

方法链写法(常用)

var distinctResult = sourceData
    // 按Company + Item组合作为分组键
    .GroupBy(x => new { x.Company, x.Item })
    // 每个分组取第一条数据,自然包含全部三列,Key取该分组第一条的对应值即可
    .Select(g => g.First())
    .ToList();

查询表达式写法

var distinctResult = 
    from data in sourceData
    group data by new { data.Company, data.Item } into dataGroup
    select dataGroup.First();

补充说明

  • C#会自动对比匿名类型的所有属性值是否相等,刚好匹配你需要的「Company和Item组合唯一」的要求
  • 如果是EF/EF Core等对接数据库的场景,该写法会自动转换为高效的SQL分组去重语句,执行效率远高于手动循环查询单条数据的实现

内容的提问来源于stack exchange,提问作者Scott D

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 16:24:03