如何一次去除通用列表中的所有空元素?
在.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)) {};