【发布时间】:2021-09-01 23:45:44
【问题描述】:
我的 C# 应用程序有一个类型为 Dictionary<string, object> 的值变量。该变量具有以下值:
{
"playerHeight":1.7654838562011719,
"armSpan":1.22609281539917,
"TestType":true,
"Symptoms":[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"RightHanded":true,
"RightFooted":true
}
我正在尝试创建一个变量,该变量是Symptoms 键持有的值的计数。这是我得到的代码:
var partIds = values.Where(kvp => kvp.Key.Equals("Symptoms")).ToList();
当我随后在 for 循环中使用 partIds 时,如下所示,计数为 0,尽管对于上面的示例它应该为 21:
for (int i = 0; i < partIds.Count(); i++)
{
...
}
我试图了解我在创建变量时使用的代码是否不正确。
【问题讨论】:
-
请您编辑您的问题以包含minimal reproducible example,并格式化JSON?我现在很难看出代码与 JSON 的关系 - 部分原因是 JSON 的
Symptoms部分位于一行的一半,它有 649 个字符长……这让人们更难来帮助你。 -
(我们也看不到您的任何类 - 并且您以非常规的方式命名局部变量并将它们与 classes 同名的事实使得它特别令人困惑。)
-
对不起。我整理了一下,重新提出了这个问题。希望它更清楚一点
-
它仍然不是很清楚 - 它绝对不是minimal reproducible example。你是如何创建字典的?如果你有一本字典,为什么要遍历整个字典而不是使用
values["Symptoms"]?请注意,使用您当前的代码,我希望partIds的计数为 1,因为有 1 个字典条目与键Symptoms。同样,这是 minimal reproducible example 可以避免混淆的地方。
标签: c# .net dictionary