DataTable列表通用

时间:2014-12-03 14:05:49

标签: c# list generics datatable

我使用以下扩展名从数据表中提取列到列表对象:

public static List<string> ColumnToList(this DataTable dt, string ColumnName)
{
    return dt.AsEnumerable().Select(x => x[ColumnName].ToString()).ToList();
}

是否可以使用genereic datata-type - 而不仅仅是字符串 - ?在我的例子中,返回值可以是List<string>, List<datetime>, List<int>, List<bool>,...

1 个答案:

答案 0 :(得分:2)

当然,您可以使用DataRow.Field<T>方法:

public static List<T> ColumnToList<T>(this DataTable dt, string ColumnName)
{
    return dt.AsEnumerable().Select(x => x.Field<T>(ColumnName)).ToList();
}

调用方法时需要指定列类型,例如:

List<int> idList = dt.ColumnToList<int>("id");