Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, samius, Вы писали:
S>>И да, действительно там нет constrained TEnumerable/TEnumerator, вместо этого рекомендованная форма C<T>. Что вполне позволяет избегать боксинга.
I>Это query comprehension так сформулирован. А вот Linq уже привязан к конкретным типам, т.к. linq это уже конкретная реализация. IEnumerable — это одна реализация, IQueryable — другая.
Linq — это технология интеграции запросов в язык. Она привязана к C<T> в спецификации. Linq to Objects — это одна конкретная реализация. Linq to SQL — еще одна. Общего между этими реализациями ничего нет кроме того, что они удовлетворяют правилам трансляции запросов.
Проведем мысленный эксперимент: уберем правило трансляции запросов — запросы остаются, интеграции в язык больше нет. Что общего между реализациями? Ничего. Осталось выяснить, что же тормозит.