2013-01-03 17 views
0

是KeyValuePair中foreach的Next函数吗?是KeyValuePair中的foreach的任何Next函数吗?

foreach (KeyValuePair<string, List<class>> KPV in dic) 
{ } 

或唯一的解决办法是采用传统的for循环与反

+6

我没有丝毫的想法你问。 –

+1

你想用'KeyValuePair .Next'做什么?它不代表任何可迭代的集合。对于其他任何事情来说,foreach就足够了。 – Tilak

+1

正如@Tilak提到的,KeyValuePair没有集合的概念。接下来对于KeyValuePair实例没有任何意义。也许你应该说明你正在努力解决的问题。 –

回答

3

阅读MSDN Dictionary Class

表示键和值的集合。

在遍历字典,你KeyValuePair Structure,它代表了对关键的(这里string)和价值(这里List<T>)工作。所以,如果目的是要遍历List<T>每对,您需要访问KeyValuePair.Value Property

foreach (KeyValuePair<string, List<object>> KPV in dic) 
{ 
    foreach (object v in KPV.Value) 
    { 

    } 
} 

而且我换成List<class>List<object>,作为绝对class不是一个类型的可能名字。

如果每个KeyValuePair.Key Property值并不重要,你可以通过Dictionary.Values Property迭代:

foreach (List<object> values in dic.Values) 
{ 
    foreach (object v in values) 
    { 

    } 
} 
1

KeyValuePair<TKey, TValue>对象可以列举如果他们是Dictionary<TKey, TValue>对象内。

Dictionary内部,您可以使用Dictionary.Enumerator结构,该结构公开了Dictionary.Enumerator.MoveNext()方法,该方法可能是您正在查找的“下一个”功能。

如果你能告诉我们你打算在foreach的代码块里面做什么,这将是很好的。