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

C#

下記のようなデータがDataTableに格納されていたとして、DateTime型のValue列の値の中で最も古い日付を取得する方法の紹介となります。下記のようなデータ構成の場合は、2019/12/01を取得することになります。

特定の条件に該当する行数を取得するには、下記のようにComputeメソッドを使います。Computeメソッドの第一引数に”MIN(Value)”とすることで最も古い日付を取得することができます。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //テーブルを作成する
            System.Data.DataTable Table = new System.Data.DataTable();
            Table.Columns.Add("ID", typeof(int));
            Table.Columns.Add("Value", typeof(DateTime));

            Table.Rows.Add(new Object[] { 1, "2020/01/01" });
            Table.Rows.Add(new Object[] { 2, "2020-02-02" });
            Table.Rows.Add(new Object[] { 3, "2019-12-01" });
            Table.Rows.Add(new Object[] { 4, "2020-01-01" });

            DateTime dt = Convert.ToDateTime(Table.Compute("MIN(Value)", null));

            Console.WriteLine(dt);

            Console.Read();
        }
    }
}

以上となります。

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