"str2-6ren">
gpt4 book ai didi

c# - 通过键从字典中获取项目

转载 作者:太空狗 更新时间:2023-10-30 00:03:34 25 4
gpt4 key购买 nike

我有这样的结构:

static Dictionary<int, Dictionary<int, string>> tasks = 
new Dictionary<int, Dictionary<int, string>>();

好像是这样

[1]([8] => "str1")
[3]([8] => "str2")
[2]([6] => "str3")
[5]([6] => "str4")

我想从此列表中获取所有 [8] 字符串,即 str1 + str2
该方法应如下所示:

static List<string> getTasksByNum(int num){

}

我如何访问它?

最佳答案

使用 LINQ,您可以执行如下操作:

return tasks.Values
.Where(dict => dict.ContainsKey(8))
.Select(dict => dict[8])
.ToList();

虽然这很优雅,但 TryGetValue 模式通常比它使用的两个查找操作更可取(首先尝试 ContainsKey,然后使用索引器获取值)。

如果这对你来说是个问题,你可以做类似的事情(使用合适的辅助方法):

return tasks.Values
.Select(dict => dict.TryGetValueToTuple(8))
.Where(tuple => tuple.Item1)
.Select(tuple => tuple.Item2)
.ToList();

关于c# - 通过键从字典中获取项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7486488/

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