簡體   English   中英

將DataColumn放入列表(相同的數據類型)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM