【发布时间】:2012-02-11 22:25:29
【问题描述】:
出于多种原因,我拥有Dictionary<string, string>,并且我正在 foreach 循环中对其进行检查。我没有办法(至少我没有找到一个聪明的解决方案)用列表、数组或Dictionary<int, string> 替换它。字典由服务器名称、包状态(2 个字符串)组成。
我正在尝试获取 foreach 循环中的前一个元素,以便将其与当前元素进行比较。
我的代码:
foreach (KeyValuePair <string,string> pair in packageDistribution) {
if (pair.Value == "package distribution complete") {
// print pair.Key + " - Installed";
} else {
// print pair.Key + " - " + pair.Value
}
if (i%3==0) "OR" (i== packageDistribution.count) {
// print the values \n
}
}
我需要将它们 3 x 3 分组以节省空间,但我的问题是即使当前元素与前一个元素不同,我也想打印到新行:
pair.Key.substring(0,4) != previousElement.substring(0,4)
我的服务器看起来像 NLDN1234, NLDN1235, NSTM2345, NSTM9874,我想根据它们的名称对它们进行分组。
有人有聪明的建议吗?
【问题讨论】:
-
为前一个元素声明一个变量并保留它。
-
字典是有序遍历的错误数据结构
-
这真的是你的代码吗?
if (i%3==0) "OR" (i== packageDistribution.count)看起来不像 valid c#。 -
如果我不能索引字典怎么办。实际上,即使我将 dictionary.keys.toArray() > array[0] 保存到变量中,如何在 foreach 循环中正确更新它?
-
不是“或”而是||。我在我的 macbook 中找不到条形图:)
标签: c# dictionary foreach iteration