【c#】datatableで特定の条件の行の数を取得する方法

C#

下記のようなデータがDataTableに格納されていたとして、”Value”列の値が”0.1″の行の数を取得する方法の紹介となります。

Value列の値が0.1の行は2行あるので、2を取得することになります。

特定の条件に該当する行数を取得するには、下記のようにComputeメソッドを使います。

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(double));

            Table.Rows.Add(new Object[] { 1, 0.1 });
            Table.Rows.Add(new Object[] { 2, 0.2 });
            Table.Rows.Add(new Object[] { 3, 0.1 });
            Table.Rows.Add(new Object[] { 4, 0.4 });

            //Computeメソッドの実行
            long count = Convert.ToInt64(Table.Compute("COUNT(ID)", "Value = 0.1"));

            Console.WriteLine(count.ToString());

            Console.Read();
        }
    }
}

Computeメソッドの第一引数に”COUNT(ID)”としています。COUNTの引数には、上記の例でいえは”COUNT(ID)”や”COUNT(Value)”などの単一のカラム名を指定してください。
※COUNT(*)のように指定した場合はエラーが発生しました。

以上となります。

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