c# – 根据Predicate清除List的最可靠方法

我有List< T>数据和谓词< T>条件.

我应该根据条件结果使用什么方法来清除数据?

>选项1:

var del = data.Where(i => condition);
data.RemoveAll(i => del.Contains(i));

>选项2:

var del = data.Where(i => condition);
for (int i = 0; i < del.Count; i++)
    data.Remove(del[i]);

>选项3:

var del = data.Where(i => condition);
foreach (var i in del)
   data.Remove(i);

>选项4:

data = data.Where(i => !condition);

>还有其他吗?

解决方法:

怎么样:

data.RemoveAll(condition);

请注意,如果没有调用ToList(),您的第四个选项将无法工作.

上一篇:移动端适配


下一篇:java – removeIf()方法.从List中删除所有元素