データ操作

[C#] DataTableから行を検索(SELECT)する

2022年3月14日

C#でDataTableから行を検索(SELECT)するサンプルです。

.Selectメソッドを使用するパターンと、
Linqを使用するパターンの2パターンがあります。

サンプルソース

サンプルとして以下のDataTableを使用します。


using System.Data;

//データテーブルの生成
DataTable dt = new DataTable("PrefTable");

//データカラムの定義
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Population", typeof(int));

//データテーブルにテータを追加
dt.Rows.Add("北海道", 5248552);
dt.Rows.Add("青森県", 1246138);
dt.Rows.Add("岩手県", 1226430);
dt.Rows.Add("宮城県", 2303160);
dt.Rows.Add("秋田県", 965968);

例1)Populationが200万以上の行をSELECTする(Selectメソッド版)


// DataTableを検索する
DataRow[] drResult = dt.Select("Population >= 2000000");

// 検索結果をコンソールに出力する
foreach (var row in drResult)
{
  Console.WriteLine(row[0] + ":" + row[1]);
}

結果

北海道:5248552
宮城県:2303160

.Selectメソッドの引数に条件式を文字列で指定します。

例2)Populationが200万以上の行をSELECTする(LINQ版)


// DataTableを検索する
DataRow[] drResult
 = dt.AsEnumerable().Where(x => x.Field("Population") >= 2000000).ToArray();

// 検索結果をコンソールに出力する
foreach (var row in drResult)
{
  Console.WriteLine(row[0] + ":" + row[1]);
}

結果

北海道:5248552
宮城県:2303160

LINQの.Whereメソッドで条件を指定します。

備考

関連記事

-データ操作
-