使用 linq 表达式通过键列表过滤字典

2023-11-21

我有一本包含所有用户及其相应年龄的字典。

Dictionary<string,int> AllUsers;

我有一个特定用户的列表。

List<String> Users;

我想过滤第一本词典AllUsers仅包含其姓名的用户SpecificUsers list.

我已经用循环手动完成了一些操作,但我想使用 linq 表达式,但我对它们不是很熟悉。

在此先感谢您的帮助


你可以过滤Users:

Users.Where(i => AllUsers.ContainsKey(i)).Select(i => new { User = i, Age = AllUsers[i] });

这样做的主要好处是您正在使用索引AllUsers进行过滤,因此您的总计算复杂度仅取决于用户数量Users (Dictionary.Contains是 O(1)) - 简单的方法往往是Users * AllUsers.

如果您想要输出字典,只需替换.Select(...)上面有

.ToDictionary(i => i, i => AllUsers[i])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 linq 表达式通过键列表过滤字典 的相关文章

随机推荐