当我进入我需要从列表中删除项目的场景时,我正在编写一些ASP.NET控件,只有当它们匹配某个条件时才会这样.
RemoveAll泛型List类的方法做得很好,但删除了与谓词指定的条件匹配的所有项.
如果我只想删除指定条件的特定数量的项目怎么办?您认为最好的方法是什么?
如果要同时指定要删除的项目数限制以及选择要删除的项目的条件,可以使用以下方法:
int limit = 30; // Suppose you want to remove 30 items at most
list.RemoveAll(item => ShouldIRemoveThis(item) && limit-- > 0);
Run Code Online (Sandbox Code Playgroud)
@buyutec
代替
list.RemoveAll(item => ShouldIRemoveThis(item));
Run Code Online (Sandbox Code Playgroud)
您可以使用:
list.RemoveAll(ShouldIRemoveThis);
Run Code Online (Sandbox Code Playgroud)
lambda与方法具有相同的签名,因此它们是等效的,因此您可以直接传递该方法.
| 归档时间: |
|
| 查看次数: |
762 次 |
| 最近记录: |