C#DataSet foreach

时间:2017-01-17 19:23:16

标签: c# foreach dataset

我正在使用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:

enter image description here

但是如果明确定义了foreach语句:

enter image description here

一切都好。 我知道foreach是Enumarator的语法糖。 它是某种传统和缺乏泛型吗?

2 个答案:

答案 0 :(得分:0)

  

是否存在某种遗产和缺乏泛型?

是。在存在泛型之前,此代码是用C#1.0编写的。

答案 1 :(得分:0)

DataTable.Columns是一个DataColumnCollection。 DataColumnCollection实现IEnumerable,而不是IEnumerable< DataColumn>。 foreach语句为您指定的任何类型执行强制转换。 Var指定枚举器方法返回的内容(这种情况是Object)。