[英]DataColumn into list (same datatype)
如何將DataColumn轉換為與列具有相同數據類型的值列表?
例:
static List<T> ColumnValuesToList<T>(DataTable dt,out string typeName)
{
typeName = dt.Columns[0].DataType.ToString();
List<T> list = new List<T>();
foreach (DataRow row in dt.Rows)
{
// var value = row[0];
//list.Add(value);
list.Add(row[0]);
}
return list;
}
呼叫:
List<int> myList = ColumnValuesToList(myDtWithInts,typeInfo);
List<string> myList = ColumnValuesToList(myDtWithStrings,typeInfo);
您快要准備好了,您只需要從DataRow中以正確的類型獲取值即可。 即,您可以投放 :
list.Add((T)row[0]);
或(我更喜歡)使用Field<T>
擴展方法 ,該方法具有可正確處理可空類型( DBNull.Value
自動轉換為null
)的優點:
list.Add(row.Field<T>(0));
但是,使用LINQ,您實際上不需要自己實現此功能:
List<int> myList = myDtWithInts.AsEnumerable()
.Select(drow => drow.Field<int>(0)).ToList();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.