📌  相关文章
📜  C#|删除列表中与谓词定义的条件匹配的所有元素(1)

📅  最后修改于: 2023-12-03 14:40:29.953000             🧑  作者: Mango

C# | 删除列表中与谓词定义的条件匹配的所有元素

介绍

在C#中,可以使用List.RemoveAll方法从列表中删除所有满足指定谓词的元素。该方法接受一个Predicate参数作为条件,该条件定义了要从列表中删除的元素。

代码示例

以下是使用List.RemoveAll方法删除与谓词定义的条件匹配的所有元素的示例:

List<int> numbers = new List<int>() { 1, 2, 3, 4, 5 };
numbers.RemoveAll(n => n % 2 == 0);

上述示例创建一个包含1到5的整数列表,并使用RemoveAll方法删除所有偶数。在这种情况下,谓词是n => n % 2 == 0,该谓词定义了要删除的元素的条件。

解释

在上面的示例中,RemoveAll方法接受一个lambda表达式作为参数,使用箭头运算符 => 分隔输入参数和表达式主体。该lambda表达式接受一个整数参数并返回一个bool值,以指示该元素是否应从列表中删除。在此示例中,lambda表达式是n => n % 2 == 0,其中%运算符计算n的余数,并检查是否为0。如果元素是偶数,则返回true,否则返回false,以指示该元素不应从列表中删除。

RemoveAll方法遍历列表中的每个元素,对每个元素调用lambda表达式,并使用返回值确定元素是否应从列表中删除。如果lambda表达式返回true,则该元素被删除;否则,它保留在列表中。

总结

使用List.RemoveAll方法删除与谓词定义的条件匹配的所有元素是一种方便且快速的方法。它避免了手动迭代列表并使用条件判断语句删除元素的需要。它还使用lambda表达式来定义删除条件,使代码更清晰易读。