Использование LINQ's Where/Select для фильтрации NULL и конвертирования типа в не нулевой не может быть введен в метод рC#

Место общения программистов C#
Ответить
Anonymous
 Использование LINQ's Where/Select для фильтрации NULL и конвертирования типа в не нулевой не может быть введен в метод р

Сообщение Anonymous »

Предположим, у меня есть < /p>

Код: Выделить всё

List list = ...;
< /code>

Я хочу превратить его в список  < /code>, но я не смог отказаться от нулевой ссылки. < /p>

ниже McVe. В моем проекте у меня есть нулевые справочные предупреждения, обращенные к ошибкам, поэтому закомментированная строка ниже не будет компилироваться. < /P>

Если я сделаю. Где (e => e! ). Select (e => e!) < /Code> тогда будет хорошо в последнем .NET Core 3.1.100, однако я не могу извлечь это в метод расширения. < /P>

я Попроеклся, добавив этот метод расширения < /p>

    public static IEnumerable NotNull(this IEnumerable enumerable)
{
return enumerable.Where(e => e != null).Select(e => e!);
}
Однако он не будет преобразовать ienumerable в ienumerable , и я не уверен, почему. Это приводит меня к ошибке, такой как: < /p>


[cs8619] Нулеваемость ссылочных типов в значении типа «список» не соответствует целевому типу 'List'.>

Подробнее здесь: https://stackoverflow.com/questions/594 ... on-nullabl
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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