我有一本包含所有用户及其相应年龄的字典。
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(使用前将#替换为@)