为什么我不能遍历这本字典
本文关键字:字典 遍历 不能 为什么 | 更新日期: 2023-09-27 18:35:58
我认为这会相对简单,我在这里首先运行此代码,该代码使用第三方软件返回一组值作为字典:
List<Dictionary<string, long>> result = 3rdPartyConnection.GetPlans(id, params);
然后,我尝试使用以下代码循环这些结果(以便我可以使用它们和其他值填充视图模型),首先我使用 viewmodel 声明一个新列表,然后循环遍历结果以填充模型:
List<OptionViewModel> AvailableOptions = new List<OptionViewModel>();
foreach (KeyValuePair<string, long> item in result)
{
OptionViewModel c = new OptionViewModel();
c.Code = item.Key;
c.Value = item.Value;
AvailableOptions.Add(c);
}
但它只会生成以下错误:
Error 257 Cannot convert type 'System.Collections.Generic.Dictionary<string,long>' to 'System.Collections.Generic.KeyValuePair<string,long>'
我不明白问题是什么,从我在 c# 上读到的内容来看,这就是你遍历字典的方式。我有一种感觉,这是我的某种简单疏忽......
它是字典的List<>
,而不是单个Dictionary<,>
。在彼此内部使用两个foreach
循环。
有时最好在foreach
循环中使用var
: foreach (var item in ...)
它可以帮助您确定迭代变量类型是什么,而无需引入强制转换。
您需要
先遍历List
,遍历每个字典,此时您可以遍历键值对:
foreach (Dictionary<string, long> dic in result)
{
foreach(KeyValuePair<string, long> item in dic)
{
OptionViewModel c = new OptionViewModel();
c.Code = item.Key;
c.Value = item.Value;
AvailableOptions.Add(c);
}
}