首页 > 解决方案 > 过滤作为字典值的列表

问题描述

Dictionary<int, List<int>> foo = GetFoo();
foreach (var (key, items) in foo)
{
    items = items.Where(item => item % 2 == 0); // unfortunately not in-place
    foo[key] = items; // unfortunately breaks iterator
}

我有一个字典映射键到整数列表{ key: [ 1, 2, 3, ... ] }

如何过滤字典的值?我想举个{ key: [2, 4, ...] }例子。

标签: c#

解决方案


使用RemoveAll,它需要一个Predicate<T>

foreach (var items in foo.Values)
{
    items.RemoveAll(item => item % 2 == 0);
}

推荐阅读