我需要应对从不受控制的数据源中传递给我的应用程序的数据集合。其中一些集合包含空值,我希望在它们到达我的代码之前尽早过滤掉它们,而不是在各个地方散布空值检查代码。我想以可重用的通用方式实现这一点,并编写了以下方法:
public static void RemoveNulls<T>(this IList<T> collection) where T : class
{
for (var i = 0; i < collection.Count(); i++)
{
if (collection[i] == null)
collection.RemoveAt(i);
}
}
我知道在具体的 List 类中,有一个名为
RemoveAll()
的方法可用于以下操作:collection.RemoveAll(x => x == null);
但是很多返回类型都是基于接口的(IList/IList…),而不是具体的类型。
RemoveAll
函数? - cuongle