如何一次去除通用列表中的所有空元素?

在.Net中为C#定义了一个默认的方法来删除列表中的所有元素为null

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

假设一些参数是null ; 我不能提前知道,我想从我的列表中删除它们,使它只包含非空的参数。

你可能会想要以下。

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

我不知道任何内置的方法,但你可以只使用linq:

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

RemoveAll方法应该做的伎俩:

 parameterList.RemoveAll(delegate (object o) { return o == null; }); 
 List<EmailParameterClass> parameterList = new List<EmailParameterClass>{param1, param2, param3...}; parameterList = parameterList.Where(param => param != null).ToList(); 

方法OfType()将跳过空值:

 List<EmailParameterClass> parameterList = new List<EmailParameterClass>{param1, param2, param3...}; IList<EmailParameterClass> parameterList_notnull = parameterList.OfType<EmailParameterClass>(); 

简单而没有LINQ:

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