c# - LINQ - 返回包含基于多个不同列的表的所有列的行

标签 c# linq

我有一张 table ,

**Matter No      Client No    Client Name  Invoice No  Invoice Date    Invoice Amt**

1111-0001          1111          ABC            101       01/01/2013       100.00 
1111-0001          1111          ABC            102       02/01/2013       200.00
1111-0001          1111          ABC            103       03/01/2013       300.00
1111-0001          1111          ABC            104       04/01/2013       400.00
1111-0001          1112          DEF            105       05/01/2013       500.00
1111-0001          1113          GHI            106       06/01/2013       600.00

基于上述情况,我希望返回所有列,但基于列的 DISTINCT ROWS - 事件号和客户号。即我需要看到 3 行作为输出:

**Matter No      Client No    Client Name  Invoice No  Invoice Date    Invoice Amt**

1111-0001          1111          ABC            101       01/01/2013       100.00 
1111-0001          1112          DEF            105       05/01/2013       500.00
1111-0001          1113          GHI            106       06/01/2013       600.00

如何在 LINQ 中实现这一点?

提前致谢

最佳答案

from x in table
group x by new {x.MatterNo, x.ClientNo}
into mygroup
select mygroup.First();

或者如果你更喜欢这种语法

list.DistinctBy(x => new {x.MatterNo, x.ClientNo});

如果你不是在处理列表,你可以试试

from DataRow drow in dtable.Rows
group drow by new {MatterNo = drow["Matter No"], ClientNo = drow["Client No"]}
into myGroup
select myGroup.First();

关于c# - LINQ - 返回包含基于多个不同列的表的所有列的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16472393/

相关文章:

c# - 将服务引用添加到 SOAP 服务不会生成异步方法

c# - 基于 SlimDX 的大型和/或开源游戏

linq - 强制转换为值类型“十进制”失败,因为实例化值为null

jquery - 通过 Jquery 获取 jsonString 为空

c# - 使用 LINQ to Entities 对多个级别的子集合进行排序

c# - 仅使用 Linq 或 Lambda,如何组合这两段代码以返回 List<Entity> e?

c# - 在 C# 控制台应用程序中使用嵌入式资源

C# - 使用 Vim 作为主编辑器

c# - 从图形转换为位图时出现空位图

c# - 通过 LINQ 加载嵌套属性