S.A*_*hid 4 c# linq linq-to-sql
我正在尝试使用以下代码从数据集中检索数据:
var all_pepole = from rows_of_bank in ds1.Tables[0].Rows select rows_of_bank;
foreach (System.Data.DataRow row in all_pepole)
{
Console.WriteLine("{0} {1} is {2} years old.", row[0].ToString(), row[1].ToString(), row[2].ToString());
}
Run Code Online (Sandbox Code Playgroud)
但是这个代码会给我带来错误,这是错误的:
无法找到源类型"System.Data.DataRowCollection"的查询模式的实现.找不到"选择".考虑明确指定范围变量'rows_of_bank'的类型
ds1.Tables[0].Rows是类型DataRowCollection,实现IEnumerable但不是IEnumerable<DataRow>.大多数Linq运算符仅适用于通用接口.您可以将项目强制转换为DataRow:
var all_pepole = from rows_of_bank in ds1.Tables[0].Rows.Cast<DataRow>() select rows_of_bank;
Run Code Online (Sandbox Code Playgroud)
或者您可以使用AsEnumerableLinq到DataSet 的扩展方法:
var all_pepole = from rows_of_bank in ds1.Tables[0].AsEnumerable() select rows_of_bank;
Run Code Online (Sandbox Code Playgroud)