C# LINQ通过多列对数据集进行分组-方法语法
我的问题与之前提出的两个问题相同 ,这个问题唯一的区别是,我需要用方法语法来解决这个问题。C# LINQ通过多列对数据集进行分组-方法语法,c#,linq,.net-4.0,linq-to-dataset,C#,Linq,.net 4.0,Linq To Dataset,我的问题与之前提出的两个问题相同 ,这个问题唯一的区别是,我需要用方法语法来解决这个问题。 及 -这个问题的不同之处在于,我需要使用LINQ to DataSet来完成此操作 我尝试按国家对客户进行分组,结果(预期)如下: COUNTRYCODE CUSTOMERNAME USA Microsoft USA IBM CAN RIM CAN Tim Horto
及 -这个问题的不同之处在于,我需要使用LINQ to DataSet来完成此操作 我尝试按国家对客户进行分组,结果(预期)如下:
COUNTRYCODE CUSTOMERNAME
USA Microsoft
USA IBM
CAN RIM
CAN Tim Horton
GER BMW
我们如何做到这一点?多谢各位
编辑:
这是我正在努力解决的乱七八糟的代码
var query = orders.AsEnumerable()
.GroupBy(t => new {CountryCode= t.Field<string>("CountryCode"),
CustomerName = t.Field<string>("CustomerName"),
(key, group)=> new {Key1 = key.CountryCode, Key2=key.CustomerName})
.Select(t => new {t.Key1, t.Key2});
var query=orders.AsEnumerable()
.GroupBy(t=>new{CountryCode=t.Field(“CountryCode”),
CustomerName=t.Field(“CustomerName”),
(key,group)=>new{Key1=key.CountryCode,Key2=key.CustomerName})
.Select(t=>new{t.Key1,t.Key2});
为完整起见,以下是查询语法:
var uniqueCountryCustomer =
from row in tblCustomer.AsEnumerable()
group row by new{
Country=(string)row["COUNTRYCODE"],
Customer=(string)row["CUSTOMERNAME"]
};
// display result
var summary = from cc in uniqueCountryCustomer
select string.Format("Country:{0} Customer:{1} Count:{2}",
cc.Key.Country,
cc.Key.Customer,
cc.Count());
MessageBox.Show(string.Join(Environment.NewLine,summary));
“我的编辑”中的代码有效:
var query = orders.AsEnumerable()
.GroupBy(t => new {CountryCode= t.Field<string>("CountryCode"),
CustomerName=t.Field<string>("CustomerName"),
(key, group)=> new {CountryCode = key.CountryCode,CustomerName=key.CustomerName})
.Select(t => new {t.CountryCode, t.CustomerName});
var query=orders.AsEnumerable()
.GroupBy(t=>new{CountryCode=t.Field(“CountryCode”),
CustomerName=t.Field(“CustomerName”),
(key,group)=>new{CountryCode=key.CountryCode,CustomerName=key.CustomerName})
.Select(t=>new{t.CountryCode,t.CustomerName});
你说“结果(预期)如下”是什么意思?结果不是按国家分组的。我应该说,“按(国家+客户)分组”抱歉。您已经有了一个Linq to DATASE示例和一个扩展方法语法示例。您只需将它们组合起来……您还需要什么?@FMFF:您还应该添加一些示例数据,而不仅仅是预期的结果。顺便说一句,OP专门要求方法语法,而不是查询理解语法…@Thomas:我是说d方法语法,但理解查询,抱歉。将删除到组中
。通常在VB.NET中进行编码,因此这是我的C#培训的附带损害。)
var query = orders.AsEnumerable()
.GroupBy(t => new {CountryCode= t.Field<string>("CountryCode"),
CustomerName=t.Field<string>("CustomerName"),
(key, group)=> new {CountryCode = key.CountryCode,CustomerName=key.CustomerName})
.Select(t => new {t.CountryCode, t.CustomerName});