我正在使用DataSet,当我使用foreach循环迭代列时,我无法获取ColumnName(如果使用var关键字):
e.g。
DataTable table1 = new DataTable("patients");
table1.Columns.Add("name");
table1.Columns.Add("id");
table1.Rows.Add("sam", 1);
table1.Rows.Add("mark", 2);
而不是使用foreach:
但是如果明确定义了foreach语句:
一切都好。 我知道foreach是Enumarator的语法糖。 它是某种传统和缺乏泛型吗?
答案 0 :(得分:0)
是否存在某种遗产和缺乏泛型?
是。在存在泛型之前,此代码是用C#1.0编写的。
答案 1 :(得分:0)
DataTable.Columns是一个DataColumnCollection。 DataColumnCollection实现IEnumerable,而不是IEnumerable< DataColumn>。 foreach语句为您指定的任何类型执行强制转换。 Var指定枚举器方法返回的内容(这种情况是Object)。