如何在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>();
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
类型集合的代码,但var
或KeyValuePair
类型都不起作用(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];
这对你有帮助。