2010-07-08 88 views

回答

8
using (var reader = cmd.ExecuteReader()) 
{ 
    var result = new List<Foo>(); 
    while (reader.Read()) 
    { 
     var foo = new Foo 
     { 
      Prop1 = reader.GetInt32(0), 
      Prop2 = reader.GetString(1), 
     } 
     result.Add(foo); 
    } 
} 
+0

我喜歡這一點,但更喜歡'result.Add(新的Foo(){PROP1 = reader.GetInt32(0),PROP2 = reader.GetString(1)});' – Justin 2015-10-28 17:16:39

0

還要檢查這個以前問qestion:How can I easily convert DataReader to List<T>?

選中此爲一般類型:

public ConvertToList<T>(SqlDataReader sqldr, int index) 
     { 
      List<T> list = new List<T>(); 

      while (sqldr.Read())   { 
       list.Add((T)sqldr.GetValue(index));    index++; 
      } 

      return list; 
     } 
0

舊的討論,但這種嘗試對大小。

強烈地鍵入您的字段,並將您的行轉換爲DbDataRecord對象。 例如:

    Dim _Query = (From row In _Results.Cast(Of DbDataRecord)().AsParallel() 
          Select New uTyping.Profile() With { 
           .Id = row(0), 
           .Firstname = row(6) 
          }).ToList() 
相關問題