【发布时间】:2014-12-29 04:28:39
【问题描述】:
可以像这样遍历字典吗?
- 我想统计所有字典项(对每个值求和),
- 接下来,对于我想要获取其值的每个键
- 然后,我想将每个键值除以 sum
- 最后,我想将 3 的每个输出相乘
我做了它,所以它适用于 1 个项目,但不确定如何制作它,以便它适用于字典中的每个项目。
这是 1 项的示例代码:
var dic = new Dictionary<string, int>();
//this is sum
double y = 0;
foreach (var item in dic)
{
y += item.Value;
}
//this is selected item
double x = 0;
foreach (var item in dic)
{
if (item.Key == "Smith")
{
x = item.Value;
}
}
double z = 0;
z = x / y;
Console.WriteLine("Smith/DicSum: " + z);
现在我想将 Z 相乘(每个 Z 对应字典中的每个键)。
我正在考虑为此制作一个大循环:
for (int i=0; i<y; i++) where y is the sum for all items in dictionary and multiply z's on the end of the loop
但我仍然不知道如何获取所有单独的值并将它们分开,而不是说出每个值的特定键。
@编辑 感谢您的回答,但请检查我的编辑。我有一个字符串列表,比如说
“史密斯是史密斯公司的非常酷的成员”
我的程序正在计算史密斯的数量,所以它会将 x 显示为 2。然后我想将 smiths 的数量(两个)除以所有单词的数量,所以它是 2/8 = 0,25。然后我想对每个单词执行此操作并将其相乘,以便在此示例中为 2/8*1/8*...*1/8。所以我想乘以循环(来自字典)中的重要数字,而不是固定数量,这就是造成这个问题的原因。
【问题讨论】:
-
你的整个第二个循环相当于
dic.TryGetValue("Smith", out x);
标签: c# .net loops dictionary key-value