Как удалить все нулевые элементы внутри общего списка за один раз?

Есть ли метод по умолчанию, определенный в .Net для С# для удаления всех элементов в списке, которые null?

List<EmailParameterClass> parameterList = new List<EmailParameterClass>{param1, param2, param3...};

Скажем, некоторые из параметров null; Я не могу знать заранее, и я хочу удалить их из своего списка, чтобы он содержал только параметры, которые не являются нулевыми.

Ответ 1

Вероятно, вам понадобится следующее.

List<EmailParameterClass> parameterList = new List<EmailParameterClass>{param1, param2, param3...};
parameterList.RemoveAll(item => item == null);

Ответ 2

Я не знаю какого-либо встроенного метода, но вы можете просто использовать linq:

parameterList = parameterList.Where(x => x != null).ToList();

Ответ 3

Метод RemoveAll должен выполнить трюк:

parameterList.RemoveAll(delegate (object o) { return o == null; });

Ответ 4

List<EmailParameterClass> parameterList = new List<EmailParameterClass>{param1, param2, param3...};

parameterList = parameterList.Where(param => param != null).ToList();

Ответ 5

Метод OfType() будет пропускать нулевые значения:

List<EmailParameterClass> parameterList =
    new List<EmailParameterClass>{param1, param2, param3...};

IList<EmailParameterClass> parameterList_notnull = 
    parameterList.OfType<EmailParameterClass>();

Ответ 6

Легко и без LINQ:

while (parameterList.Remove(null)) {};