.net - 有条件地从列表中删除 N 项

标签 .net

我正在编写一些 ASP.NET 控件,当我遇到需要从列表中删除项目的场景时,只有当它们符合特定条件时。

通用 List 类的 RemoveAll 方法做得很好,但会删除 所有 与谓词指定的条件匹配的项目.

如果我只想删除特定数量的指定条件的项目怎么办?您认为最好的方法是什么?

最佳答案

如果您想同时指定要删除的项目数量限制和选择要删除的项目的条件,您可以使用这种方法:

int limit = 30; // Suppose you want to remove 30 items at most
list.RemoveAll(item => ShouldIRemoveThis(item) && limit-- > 0);

关于.net - 有条件地从列表中删除 N 项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16460/

相关文章:

.net - Log4net 没有在我的 VS2012 单元测试中运行

.NET HttpRequests使用Windows系统Cache

c# - 如何按 2 个值平整 IEnumerable?

c# - 使用 DeflateStream 读取与预期大小不匹配

c# - 触发事件时的事件和委托(delegate)顺序

c# - 连接多个集合之前进行空检查

c# - 跨 AppDomain 异常序列化

.net - 在哪里存储第 3 方库?

c# - 具有值类型键和引用类型值的通用字典

.net - 垃圾收集多少就太多了