gpt4 book ai didi

c# - 如何尽可能简单地使用 Linq 从字典中选择多个值

转载 作者:IT王子 更新时间:2023-10-29 04:20:28 26 4
gpt4 key购买 nike

我需要根据键的子集从字典中选择一些值(放入列表中)。

我正在尝试使用 Linq 在单行代码中执行此操作,但到目前为止我发现的内容似乎又长又笨拙。最短(最干净)的方法是什么?

这就是我现在拥有的(键是字符串,keyToSelect 是要选择的键列表):

List<ValueType> selectedValues = dictionary1.Where(x => keysToSelect.Contains(x.Key))
.ToDictionary<String, valueType>(x => x.Key,
x => x.Value)
.Values.ToList;

谢谢。

最佳答案

你可以从列表而不是字典开始:

var selectedValues = keysToSelect.Where(dictionary1.ContainsKey)
.Select(x => dictionary1[x])
.ToList();

如果保证所有键都在字典中你可以省略第一个Where:

var selectedValues = keysToSelect.Select(x => dictionary1[x]).ToList();

请注意,此解决方案比迭代字典更快,尤其是当要选择的键列表与字典的大小相比较小时,因为 Dictionary.ContainsKeyList 快得多.包含

关于c# - 如何尽可能简单地使用 Linq 从字典中选择多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12544987/

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