如何循环使用数据表值而不使用for或foreach循环然后列出值添加到List?

时间:2015-10-01 10:41:32

标签: c# asp.net ado.net generic-list

具有值列表的表[1]。

if (ds.Tables[1].Rows.Count > 0)
{
    // How to loop through datatable values without using for or foreach loop and then list values add to List?//


   testRetrieveResponse.testList.Add();- how to add values to list 

}

2 个答案:

答案 0 :(得分:2)

您可以使用DataTable.AsEnumerable

List<DataRow> list = ds.Tables[1].AsEnumerable().ToList();

或者,如果你想创建一些Type的列表,那么你可以使用Select并制作你的类型的对象。

List<DataRow> list = ds.Tables[1].AsEnumerable()
                     .Select(a => new YourType { Prop1 = a.Field<string>("Prop1")}).ToList();

答案 1 :(得分:1)

执行此操作的一种方法是Enumerable.Cast每个元素DataRow,然后使用Enumerable.Select投影新元素类型:

var customTypes = ds.Tables[1]
                    .Rows
                    .Cast<DataRow>()
                    .Select(row => new SomeType { Id = row["Id"] })
                    .ToList();