我有List<T> data
和Predicate<T> condition.
根据data
结果,我应该使用哪种方式清除condition
?
选项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);
还有其他吗?
答案 0 :(得分:10)
怎么样:
data.RemoveAll(condition);
请注意,如果没有拨打ToList()
,您的第四个选项将无效。