0

C# .Net に EnumerableRowCollection があり、2 つの列があります。最初の列でグループ化し、次に 2 番目の列をグループ化し、2 番目の列をカウントします。

私の EnumerableRowCollection は、DataGridView で次のように見える 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での答えを見つけました。

var queryableData = myDataTable.AsEnumerable();
var result = from row in queryableData
          group row by new { ProductName = row["Product Name"], 
                             ProductPrice = row["Product Price"] };

LINQ クエリを編集して、列 1 でグループ化し、次に列 2 でグループ化し、列 2 をカウントできるようにするにはどうすればよいですか?

4

1 に答える 1

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()  };
于 2012-09-21T09:32:35.397 に答える