提问人:user1279156 提问时间:6/17/2023 更新时间:6/17/2023 访问量:66
C# 循环访问嵌套键值对
c# iterate over nested key value pair
问:
我有一个,对象也是一个 KeyValuePair。我一直在尝试将对象转换为新的 KeyValuePair,以便可以遍历值,但到目前为止,所有尝试都失败了。有人有什么想法吗?谢谢。KeyValuePair<string,object>
var installers = manifestDict.Where(kvp => kvp.Key.Equals("Installers"));
foreach(var i in installers)
{
var newKvp = i.Value;
//how to cast this object to a new kvp?
}
答:
1赞
Ziv Weissman
6/17/2023
#1
在我看来,这是另一本字典,不是吗?
所以你应该把它强制转换为 Dictionary<string, object>
var installers = manifestDict.Where(kvp => kvp.Key.Equals("Installers"));
foreach(var i in installers)
{
var newKvp = (Dictionary<string, object>)i.Value;
//how to cast this object to a new kvp?
}
顺便说一句,如果你确定你有那个键,你也可以这样写它:
var installers = (Dictionary<string, object>)manifestDict["Installers"];
foreach(var installer in installers)
{
//This will itenrate all your key value pairs inside installers
Console.WriteLine(installer.Value);
}
评论
0赞
user1279156
6/17/2023
关闭。这就是我正在尝试的,但它仍然抛出了一个例外。
0赞
user1279156
6/17/2023
#2
最后,我需要先投射到一个列表中。
foreach(var i in installers)
{
var newKvp = i.Value as List<object>;
foreach(var z in newKvp)
{
var result = (Dictionary<object,object>) z;
}
}
评论
Console.WriteLine(i.Value.GetType());