Зачем использовать .AsEnumerable() вместо приведения к IEnumerable?C#

Место общения программистов C#
Anonymous
Зачем использовать .AsEnumerable() вместо приведения к IEnumerable?

Сообщение Anonymous »

Одним из методов расширения 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

Вернуться в «C#»