Вы можете использовать Linq to DataSets , если хотите
List<SomeType> Lst = (from r in dataTable.AsEnumerable()
select new YourType()
{
SomeProperty = r.Field<string>("SomeField"),
SomeOtherProperty = r.Field<string>("SomeOtherField")
}).ToList();
Вот полный пример
class Program
{
static void Main(string[] args)
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
dt.TableName = "source";
dt.Columns.Add(new DataColumn ("First",typeof (string)));
dt.Columns.Add(new DataColumn ("Last",typeof (string)));
ds.Tables.Add(dt);
dt.Rows.Add("Charles", "Babbage ");
dt.Rows.Add("Ada", "Lovelace");
List<YourType> YourTypeList = (from r in ds.Tables[0].AsEnumerable()
select new YourType()
{
First = r.Field<string>("First"),
Last = r.Field<string>("Last")
}).ToList();
foreach(YourType yt in YourTypeList)
{
Console.WriteLine("{0}, {1}", yt.First, yt.Last);
}
}
}
class YourType
{
public string First {get;set;}
public string Last { get; set; }
}
с использованием foreach над DataTable.Rows и добавлением ихк списку также будет работать
List<YourType> YourTypeList = new List<YourType>();
foreach(DataRow r in dt.Rows )
{
YourTypeList.Add(new YourType() {
First = r.Field<string>("First"),
Last = r.Field<string>("Last") });
}