我有 List<T> dataPredicate<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);
    
  • 还有其他吗?
  • 最佳答案

    怎么样:

    data.RemoveAll(condition);
    

    请注意,如果不调用 ToList() ,您的第四个选项将无法使用。

    关于c# - 根据 Predicate<T> 清理 List<T> 的最可靠方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4324046/

    10-11 22:37
    查看更多