如何枚举遍历字典

4

如何通过索引(int index)而不是键从字典中检索元素?

5个回答

6
foreach(KeyValuePair<String,String> pair in dictionary)
{
     string key = pair.Key;
     string value = pair.Value;
}

或者通过项目获取访问权限。
dictionary.ToList()[index].Key/Value    :-)

3

字典是一个无序的收集,因此它不提供随机访问。只有实现了IList<T>的类型才能随机访问它们的内容。

好吧,这并不完全正确——你可以使用OrderedDictionary(它将为您提供没有IList<T>也能进行随机访问),但您会失去泛型字典的优势。如果您需要随机访问,最好不要使用字典。


3

3
这应该是对该问题的评论。 - Matt Ellen

2

由于Dictionary类没有指定存储键/值对的顺序,因此无法通过索引检索元素。如果需要同时进行键和索引查找,请使用OrderedDictionary类。


1
我发现这个很有用:

foreach (var key in dictionary.Keys)
{
    var value = dictionary[key];
}

或者

foreach (var value in dictionary.Values)
{
    // use value
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接