我使用以下扩展名从数据表中提取列到列表对象:
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>
,...
答案 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");