この記事は公開から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();
参考ウェブサイトなど
- Microsoft Reference Source
System.Data.DataSetExtensions
以上です。