我有一张 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/