読者です 読者をやめる 読者になる 読者になる

いろいろ備忘録日記

主に .NET 絡みのメモを公開しています。

ADO.NET入門記-024 (System.Data.DataTableについて(03) (行の抽出) (DataTable, Select))

C# ADO.NET


続いて、Selectメソッドです。


このメソッドは、特定の条件に合致する行を抽出する際に利用します。
たまに使うこともあるので、一応メモです。


しかし、このSelectメソッドはDataTableの行数が多い場合には
少し遅いので、あまり乱用は禁物です。とはいえ、SQLでデータを
一気にとってしまって、その後目的のデータ分を抽出したりする際
にはなにかと便利です。


抽出条件に指定できる書式は、DataColumnのExpressionプロパティで
指定できるものと同じです。


尚、戻り値はDataTableではなく、DataRowの配列となります。


以下、サンプルです。

#region DataTableSamples-02
    public class DataTableSamples02 : IExecutable {

        public void Execute() {
            DataTable table = new DataTable();

            table.Columns.Add("Val", typeof(int));

            for(int i = 0; i < 10; i++) {
                table.LoadDataRow(new object{i}, true);
            }

            //
            // Selectメソッドで行を抽出.
            //
            DataRow selectedRows = table.Select("(Val % 2) = 0", "Val");
            selectedRows.ToList().ForEach((row) => { Console.WriteLine(row["Val"]); });
        }
    }
#endregion