如何遍历SortedList,获取密钥和值

时间:2012-12-23 17:54:49

标签: c# sortedlist

以下代码遍历列表并获取值,但是我如何编写一个类似的语句来获取键和值

foreach (string value in list.Values)
{
    Console.WriteLine(value);
}

例如像这样的

    foreach (string value in list.Values)
{
    Console.WriteLine(value);
        Console.WriteLine(list.key);
}

列表的代码是:

SortedList<string, string> list = new SortedList<string, string>();

4 个答案:

答案 0 :(得分:29)

foreach (KeyValuePair<string, string> kvp in list)
{
    Console.WriteLine(kvp.Value);
    Console.WriteLine(kvp.Key);
}

来自msdn

GetEnumerator返回一个KeyValuePair<TKey, TValue>类型的枚举器,它遍历SortedList<TKey, TValue>

正如Jon所说,您可以使用var关键字而不是编写迭代变量的类型名称(类型将从使用中推断出来):

foreach (var kvp in list)
{
    Console.WriteLine(kvp.Value);
    Console.WriteLine(kvp.Key);
}

答案 1 :(得分:0)

...道歉

这是错误的主题(循环通过值)。我的问题是循环键值对,而不仅仅是值。 如果没有异议作为从SortedList集合中获取值的可能选项,请将此保留在此处。

我也试图找出此错误,我的解决方案是使用DictionaryEntry类型替换错误输出KeyValuePair类型。 从MS参考中找到 https://msdn.microsoft.com/en-us/library/system.collections.dictionaryentry(v=vs.100).aspx

在我的情况下,我创建了SortedList类型集合的代码,varKeyValuePair类型都没有工作(var在尝试读取密钥时出错了KeyValuePair集合项中的值和初始循环定义中出错的"Specified cast is not valid"。两者都出错SortedList _dims = GetList("mysortedlist"); foreach (DictionaryEntry kvp in _dims) { Console.WriteLine(kvp.Key.ToString()); Console.WriteLine(kvp.Value.ToString()); }

以下是适用于我的代码示例:

/etc/xdg/awesome/

HTH

戴夫

答案 2 :(得分:-1)

 bool value = list[key];

这可以帮到你。

答案 3 :(得分:-1)

使用密钥迭代并获取每个密钥的值:

SortedList<string, string> info = new SortedList<string, string>();

info.Add("path", "път");
info.Add("folder", "директория");
info.Add("directory", "директория");
info.Add("file", "Файл");

foreach (string key in info.Keys)
{
 Console.WriteLine("\t{0}\t{1}", key, info[key]);
}