如何在SortedList中循环,同时获取键和值

本文关键字:获取 键和值 循环 SortedList | 更新日期: 2023-09-27 17:49:15

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

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>();

如何在SortedList中循环,同时获取键和值

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);
}
道歉。。。

这是一个错误的主题(遍历值(。我的问题是通过键值对进行循环,而不仅仅是值。如果没有异议,将保留此选项作为从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()); 
}

HTH-

Dave

只需使用键进行迭代并获得每个键的值:

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]);
}
 bool value = list[key];

这对你有帮助。