简体   繁体   English

C#DataSet foreach

[英]C# DataSet foreach

I'm using DataSet and when I iterate at columns with foreach loop I can't get ColumnName (if using var keyword): 我正在使用DataSet,当我使用foreach循环在列上迭代时,无法获得ColumnName(如果使用var关键字):

eg 例如

DataTable table1 = new DataTable("patients");
table1.Columns.Add("name");
table1.Columns.Add("id");
table1.Rows.Add("sam", 1);
table1.Rows.Add("mark", 2);

And than using foreach: 并且比使用foreach:

在此处输入图片说明

But if foreach statement is explicitly defined: 但是,如果显式定义了foreach语句:

在此处输入图片说明

Everything is ok. 一切都好。 I know that foreach is syntactic sugar for Enumarator. 我知道foreach是Enumarator的语法糖。 Is it some kind of legacy and lack of Generics ? 这是某种遗留下来的遗传药物吗?

Is it some kind of legacy and lack of Generics? 这是某种遗留和缺乏泛型吗?

Yes. 是。 This code was written in C# 1.0, before generics existed. 在泛型存在之前,该代码是用C#1.0编写的。

DataTable.Columns is a DataColumnCollection. DataTable.Columns是一个DataColumnCollection。 DataColumnCollection implements IEnumerable, not IEnumerable<DataColumn>. DataColumnCollection实现IEnumerable,而不是IEnumerable <DataColumn>。 The foreach statement performs a cast for whichever type you specify. foreach语句将对您指定的任何类型执行强制类型转换。 Var specifies what the enumerator method returns (which is this case is Object). Var指定枚举器方法返回的内容(在这种情况下为Object)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM