我新在C#泛型和一边看书时的例子偶然发现:使用仿制药,而不是铸造的AsEnumerable
var cars = from car in data.AsEnumerable()
where
car.Field<string>("Color") == "Red"
select new
{
ID = car.Field<int>("CarID"),
Make = car.Field<string>("Make")
};
撰文人说,car.Field<string>("Color")
给出了额外的编译时检查比较(string)car["Color"]
。但是编译器如何知道car.Field<string>("Color")
可以编译为“Color”而不是“CarID”?或者我错过了另一种“额外的编译时检查”?
@DBM,'car'不是'IEnumerable',它是'T'。 –
svick
2012-02-05 23:14:11
啊,你说得对。我很累...... T可能是一个'DataRow' – 2012-02-05 23:15:20