C# LINQ-基于多个不同的列返回表中所有列的行
我有一张桌子C# LINQ-基于多个不同的列返回表中所有列的行,c#,linq,C#,Linq,我有一张桌子 **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
**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
基于上述场景,我希望返回所有列,但不返回基于列的不同行-无论是否和客户端号。即,我需要将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();
或者如果您喜欢这种语法
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();
试试这个:
DataTable result = dt.AsEnumerable()
.GroupBy(x => x.Field<int>("COLUMN NAME"))
.Select(x => x.First()).CopyToDataTable();
DataTable结果=dt.AsEnumerable()
.GroupBy(x=>x.Field(“列名”))
.Select(x=>x.First()).CopyToDataTable();
试试这个:
DataTable result = dt.AsEnumerable()
.GroupBy(x => x.Field<int>("COLUMN NAME"))
.Select(x => x.First()).CopyToDataTable();
DataTable结果=dt.AsEnumerable()
.GroupBy(x=>x.Field(“列名”))
.Select(x=>x.First()).CopyToDataTable();
Dó你有一些c#代码来回答你的问题吗?:-)你试过什么?Dó你有一些c#代码来回答你的问题吗?:-)您尝试过什么?谢谢,但列名是[Matter No]和[Client No]。上述查询无法识别x.matterno和x.clientNo。它说System.Data.DataRow不包含x的定义。MatterNo@prafullashimpi我改了,最后一个例子让你更接近了吗?goup->group?错别字,我又是汉克斯了。现在,我收到一个错误“无效的匿名类型成员声明程序。必须使用成员分配、简单名称或成员访问权限声明匿名类型成员。”对于语句{drow[“Matter No”]、drow[“Client No”]}。我向组中添加了缺少的“r”。因为它不是创建匿名类型的有效语法。Try:new{MatterNo=drow[“MatterNo”],ClientNo=drow[“Client No”]}谢谢,但列名是[MatterNo]和[Client No]。上述查询无法识别x.matterno和x.clientNo。它说System.Data.DataRow不包含x的定义。MatterNo@prafullashimpi我改了,最后一个例子让你更接近了吗?goup->group?错别字,我又是汉克斯了。现在,我收到一个错误“无效的匿名类型成员声明程序。必须使用成员分配、简单名称或成员访问权限声明匿名类型成员。”对于语句{drow[“Matter No”]、drow[“Client No”]}。我向组中添加了缺少的“r”。因为它不是创建匿名类型的有效语法。Try:new{MatterNo=drow[“无事”],ClientNo=drow[“无客户”]}