我有一个项目,它将来自 SQL 的一些数据存储在 a 中DataTable
,然后将每个数据映射DataRow
到一个自定义类实例。
当我遍历属性Rows
(类型为)DataRowCollection
时,没有类型推断。
所以这不起作用:
var dt = new DataTable();
foreach(var row in dt.Rows)
{
int id = Int32.Parse(row.ItemArray[0].ToString());
// doesn't compile
}
但这确实:
var dt = new DataTable();
foreach(DataRow row in dt.Rows)
{
int id = Int32.Parse(row.ItemArray[0].ToString());
}
为什么编译器无法确定它是什么类型row
?var
在枚举 a 的情况下,关键字可以代表其他东西吗DataRowCollection
?除了数据行之外,还有其他可以在 a 中枚举的内容DataRowCollection
吗?
这就是你需要明确的原因吗?