Одним из методов расширения IEnumerable является .AsEnumerable(). Этот метод преобразует перечисляемый объект, к которому он был вызван, в экземпляр IEnumerable. Однако, поскольку для применения к этому методу расширения объект должен реализовать IEnumerable, преобразование в IEnumerable — это простой процесс приведения к IEnumerable. У меня вопрос: почему этот метод вообще существует?
Пример:
Код: Выделить всё
List strings = new List() { "test", "test2", "test3" };
IEnumerable stringsEnum1 = strings.AsEnumerable();
IEnumerable stringsEnum2 = (IEnumerable)strings;
В приведенном выше примере stringsEnum1 и stringsEnum2 эквивалентны. В чем смысл метода расширения?
Как следствие, почему существует метод .AsQueryable(), когда приведение к IQueryable эквивалентно?
Подробнее здесь:
https://stackoverflow.com/questions/201 ... numerablet