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

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

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

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

6 Solutions collect form web for “如何一次去除通用列表中的所有空元素?”

你可能会想要以下。

 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)) {}; 
  • JavaScript检查null与undefined以及==和===之间的区别
  • Haskell中的undefined和Java中的null有什么区别?
  • 和nil有什么区别?
  • 如何判断一个string是不是在bash shell脚本中定义的?
  • IN子句用NULL或IS NULL
  • 删除“NUL”字符
  • 空检查链与捕获NullPointerException
  • NULL vs nullptr(为什么被replace?)
  • 空值检查在VB中
  • 你在C ++中使用NULL或0(零)指针?
  • 可以符合C实现#define NULL是古怪的东西