「東雲 忠太郎」の平凡な日常のできごと

2024/02/25(日)07:17

Linqで列1と列2と列3でグループ化して列4の平均値を求めるコード

LINQ(39)

using System; using System.Data; using System.Linq; class Program {     static void Main()     {         // サンプルのDataTableを作成します         DataTable table = new DataTable();         table.Columns.Add("Column1", typeof(int));         table.Columns.Add("Column2", typeof(string));         table.Columns.Add("Column3", typeof(double));         table.Columns.Add("Column4", typeof(double));         // サンプルデータを追加します         table.Rows.Add(1, "A", 10.0, 100.0);         table.Rows.Add(1, "A", 20.0, 200.0);         table.Rows.Add(2, "B", 30.0, 300.0);         table.Rows.Add(2, "B", 40.0, 400.0);         // LINQを使用して列1、列2、列3でグループ化し、列4の平均値を求めます         var result = from DataRow row in table.Rows                      group row by new { Column1 = row.Field<int>("Column1"), Column2 = row.Field<string>("Column2"), Column3 = row.Field<double>("Column3") } into grp                      select new                      {                          Column1 = grp.Key.Column1,                          Column2 = grp.Key.Column2,                          Column3 = grp.Key.Column3,                          AvgColumn4 = grp.Average(r => r.Field<double>("Column4"))                      };         // 結果を出力します         foreach (var item in result)         {             Console.WriteLine($"Column1: {item.Column1}, Column2: {item.Column2}, Column3: {item.Column3}, AvgColumn4: {item.AvgColumn4}");         }     } }

続きを読む

このブログでよく読まれている記事

もっと見る

総合記事ランキング

もっと見る