我新在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