gpt4 book ai didi

c# - 使用 linq 表达式过滤包含键列表的字典

转载 作者:行者123 更新时间:2023-11-30 13:30:32 25 4
gpt4 key购买 nike

我有一个字典,其中包含所有具有相应年龄的用户。

Dictionary<string,int> AllUsers;

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

List<String> Users;

我想过滤第一个字典AllUsers,只包含名字在SpecificUsers 列表中的用户。

我用循环手动做了一些事情,但我想使用 linq 表达式,但我对它们不是很熟悉。

预先感谢您的帮助

最佳答案

您可以过滤用户:

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])

关于c# - 使用 linq 表达式过滤包含键列表的字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32397165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com