根据谓词<t> </t> </t>清理List <t>的最可靠方法

时间:2010-12-01 11:53:15

标签: c# linq list predicate

我有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);
    
  • 还有其他吗?

1 个答案:

答案 0 :(得分:10)

怎么样:

data.RemoveAll(condition);

请注意,如果没有拨打ToList(),您的第四个选项将无效。