我在C#.Net中有一个EnumerableRowCollection,有两列。我想分组第一列,然后是第二列,然后计算第二列。
我的EnumerableRowCollection基于DataGable上的DataTable:
如果这是一个MySQL表,我会实现我想要的那样:
SELECT `Product Name`,
`Upsell Price`,
Count(`Upsell Price`)
FROM `tblWhatever`
GROUP BY `Product Name`, `Upsell Price`;
我在LINQ中需要这个等价物
我已经以编程方式构建了DataTable:
DataTable myDataTable = new DataTabl();
DataColumn myColumn = new DataColumn("My Column");
myDataTable.Columns.Add(myDataTable);
myDataTable.Rows.Add(new object[] { "whatever" });
myDataGridView.DataSource = myDataTable;
我找到了Daniel Schaffer
的答案here,这帮助了我的小组,但我被困在计数中,如下所示:
var queryableData = myDataTable.AsEnumerable();
var result = from row in queryableData
group row by new { ProductName = row["Product Name"],
ProductPrice = row["Product Price"] };
如何编辑我的LINQ查询以允许我按第一列分组,然后按第二列分组,然后计算第二列?
答案 0 :(得分:1)
试试这个:
var result = from row in queryableData
group row by new { ProductName = row["Product Name"],
ProductPrice = row["Product Price"] } into grp
select new { grp.Key.ProductName ,
grp.Key.ProductPrice,
Count = grp.Count() };