Bir DataTable ile çalışıyordum ve Resharper'ın bir döngüyi LINQ ifadesine dönüştürebileceğimi önerdiğini fark ettim. Öyle yaptım ve (basitleştirilmiş) sorgu ifade söz diziminde yeniden yazıldı:LINQ - Yöntem vs Sorgu Sözdizimi Farkı
var test1 = from DataRow row in dt.Rows select row;
Şahsen, yöntem sözdizimi yüzden bu kadar yeniden yazdım tercih:
var test2 = dt.Rows.Select(row => row);
Ve kırdı.
'System.Data.DataRowCollection' 'Seç' tanımını ve türü 'System.Data.DataRowCollection' bir ilk argüman kabul hiç uzatma yöntemi 'Seç' içermiyor (eğer eksik bulunamadı kullanma yönergesi veya derleme başvurusu?)
Sorgu ifadesi translated to method calls olduğundan, neden bu ilk çalışmadır, ancak ikinci değil mi? İkisinden de beklenmedik ya da işe yaramadı.
'DataRowCollection' IEnumerable 'değil' IEnumerable'ı uyguladığı için gereklidir. –
@ChrisShouts: Ah, bunu daha önce fark etmiştim ama tam olarak neden tam olarak dalmıştı. "Yanlış" IEnumerable uyguladığı gerçeği, eksik olduğum şey. :) – Chris