У меня есть следующий код:
List<string> myCars = new List<string>()
{ "Mercury Cougar", "Dodge Dart", "Ford Taurus SHO",
"Dodge Charger", "Chevrolet Blazer", "Dodge Neon" };
var dodges = from someCars in myCars
where someCars.Contains("Dodge")
orderby someCars descending
select someCars;
Console.WriteLine(dodges.GetType()); //System.Linq.OrderedEnumerable`2[System.String,System.String]
dodges.GetType()
возвращает полностью определенное имя в синтаксисе CIL.
Если я переведу его на C # и использую его для замены var
, он не компилируется:
Тип или имя пространства имен 'OrderedEnumerable <,>' не существует в пространстве имен 'System.Linq' (вам не хватает ссылки на сборку?)
System.Linq.OrderedEnumerable<string, string> dodges = from someCars in myCars
where someCars.Contains("Dodge")
orderby someCars descending
select someCars;
Это потому, что OrderedEnumerable<string, string>
недоступен, доступен только System.Linq.IOrderedEnumerable<string>
.
Почему OrderedEnumerable<string, string>
недоступен?