Не удается неявно преобразовать тип "System.Linq.IOrderedEnumerable" в "System.Collections.Generic.IEnumerable"
Имеется задача, получить последовательность строковых представлений только нечетных значений integerList и отсортировать в порядке возрастания. Для этого нужно использовать Linq в одну строку в return.
Вот моё решение:
public static IEnumerable<string> Task5(IEnumerable<int> integerList)
{
return integerList.Where(x => x % 2 != 0).OrderBy(x => x);
}
Которое выдает вот такую ошибку:
(параметр) IEnumerable integerList Не удается неявно преобразовать тип "System.Linq.IOrderedEnumerable" в "System.Collections.Generic.IEnumerable". Существует явное преобразование (возможно, пропущено приведение типов). [Linq]
Объясните пожалуйста как решать и что означают подобные ошибки?
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
Когда неявно не получается, можно попробовать явно.
public static IEnumerable<string> Task5(IEnumerable<int> integerList)
{
return integerList
.Where(x => x % 2 != 0)
.OrderBy(x => x)
.Select(x => x.ToString()); // или по-модному x => $"{x}"
}