Bu foreach
ifadesine girdiğimde ...Var neden "foreach (tablodaki var satır)" bölümünde System.Object olarak değerlendirir?
foreach (var row in table.Rows)
... var için araç ipucu class System.Object
class System.Data.DataRow
neden karışık değil.
(Eğer merak ediyorsanız, evet, kod dosyanızın üstünde using System.Data
var.)
Açık bir şekilde bildirimde bulunursam ...
foreach (DataRow row in table.Rows)
... hata olmadan iyi çalışıyor.
Ayrıca yaparsam ...
var numbers = new int[] { 1, 2, 3 };
foreach (var number in numbers)
... var struct System.Int32
olarak değerlendirir. Yani, sorun var
foreach
cümlede çalışmıyor.
Yani, DataRowCollection
hakkında öğelerin otomatik olarak DataRow
olarak değerlendirilmediği garip bir şey var. Ama ne olduğunu anlayamıyorum. Herkesin bir açıklaması var mı?
Hangi cevabı işaretlemiştim (Codeka ve Oliver) ... Sonuçta Codeka'yı işaretlemeye karar verdim çünkü sorumu gerçekten cevaplandırdı, ama Oliver cevap veriyor soru sormalıydım :)
Büyük noktası:
Bazı uzatma onunla
AsEnumerable(this System.Data.DataTable)
veyaField<T>(this System.Data.DataRow, int)
gibi işlevleri bir foreach döngüsü içinde diyoruz ve uygun türü içine doğrudan sütun yayınlayabileceğim içeriyor! +1 –Bu cevabı seviyorum. +1 – wonea