2012-06-29 30 views
1

我正在使用C#的Winforms应用程序。我有一个具有特定对象的字典,该对象具有属性Id和DocType。我如何访问foreach语句中每个对象的属性。我试着用下面的代码,但不工作。任何帮助吗?访问字典内的对象的属性

foreach (var doc in crs.DocDictionary) 
      { 
       Console.WriteLine(doc.Id); 
       Console.WriteLine(doc.docType); 

      } 
+1

的隐式类型局部变量让你对字典的元素的类型困惑。 –

回答

4

如果foreach你得到的KeyValuePair<TKey,TValue>序列的字典;尝试:

foreach (var doc in crs.DocDictionary.Values) 
{ 
    Console.WriteLine(doc.Id); 
    Console.WriteLine(doc.docType); 
} 

或:

foreach (var pair in crs.DocDictionary) 
{ 
    Console.WriteLine(pair.Key); 
    Console.WriteLine(pair.Value.Id); 
    Console.WriteLine(pair.Value.docType); 
} 
+0

就是这样。只要确保你有一个类型Dictionay ,所以你不需要把它放在其他地方,比如((Document)pair.Value).Id。 –

+0

当我输入pair.Value。 ,我不能看到属性Id和docType。我只能看到.compareTo,ToString,GetType,GetHashCode,GetTypeCode和Equals。 – user1292656

+0

@Andre不是一个盒子/ unbox –