【c#】datatableで特定のカラムの最大値を取得する方法

C#

下記のようなデータがdatatableに格納されていたとして、”Value”列の最大値を算出する方法です。

最大値を算出するには、下記のコードのようにComputeメソッドを使います。

//テーブルを作成する。
System.Data.DataTable Table = new System.Data.DataTable();
Table.Columns.Add("ID", typeof(int));
Table.Columns.Add("Value", typeof(double));

Table.Rows.Add(new Object[] { 1, 1.5 });
Table.Rows.Add(new Object[] { 2, 0.5 });
Table.Rows.Add(new Object[] { 3, 2.0 });
Table.Rows.Add(new Object[] { 4, 1.0 });
Table.Rows.Add(new Object[] { 5, 5.0 });

//Computeメソッドの実行
double max = Convert.ToDouble(Table.Compute("MAX(Value)", null));

Computeメソッドの第一引数に”MAX(Value)”としています。
MAXの中には適宜集計対象のカラム名を入れてください。
上記の結果、変数maxに”Value”カラムの合計(=5.0)が格納されます。

補足
Computeメソッドの第二引数を使えば特定の条件の行の中で集計を行うことも可能です。
詳細は下記ページを参照してみてください。
DataTable.Compute(String, String) メソッド

参考になれば幸いです。

関連ページ;
【c#】datatableで特定のカラムの合計値を取得する方法

タイトルとURLをコピーしました