.NETのDataSetでIEnumerable(DataTable)を取得する方法

この記事は公開から3年以上経過しています。

小ネタですが.NETのDataSetからIEnumerable(DataTable)を取得する方法。

問題

DataTableからIEnumerable(DataRow)を取得する場合は

dataTable.AsEnumerable();

のようにSystem.Collections.Genericに用意されている拡張メソッドAsEnumerable()を利用できるが、DataSetからIEnumerable(DataTable)を取得する拡張メソッドは用意されていない。

対応

以下のような拡張メソッドを自前で用意する。

C#

static class Extensions
{
    public static IEnumerable<DataTable> AsEnumerable(this DataSet source)
    {
        return source.Tables.Cast<DataTable>();
    }
}

VB.NET

Module Extensions
    <Extension()>
    Public Function AsEnumerable(source As DataSet) As IEnumerable(Of DataTable)
        Return source.Tables.Cast(Of DataTable)
    End Function
End Module

使い方

DataTableのAsEnumerable()と同様にDataSetインスタンスに対してAsEnumerable()を呼び出します。

dataSet.AsEnumerable();

参考ウェブサイトなど

以上です。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする