2010-05-28 41 views
0

的優點時,使用字典項目的最佳方法我想要像列表中的泛型類 那樣使用字典項目,例如;當我們使用列表

foreach(item in ItemList) 
{ 
    item.BlaBla; 
} 

但是在字典裏沒有機會,像上面E法...

Dictionary<string, HtmlInputImage> smartPenImageDictionary; 

我的意思是我認識的字典項重點項目..但我想要什麼,我想要從列表的開始到結束。

回答

2

我不是很確定你想達到什麼目的,但這裏有一些你可以用字典做的常見事情。

IDictionary<Int32, String> dictionary = new Dictionary<Int32, String>(); 

// Iterate over all key value pairs. 
foreach (KeyValuePair<Int32, String> keyValuePair in dictionary) 
{ 
    Int32 key = keyValuePair.Key; 
    String value = keyValuePair.Value; 
} 

// Iterate over all keys. 
foreach (Int32 key in dictionary.Keys) 
{ 
    // Get the value by key. 
    String value = dictionary[key]; 
} 

// Iterate over all values. 
foreach (String value in dictionary.Values) 
{ 
} 
+0

danke Daniel。 ! – theklc 2010-05-28 11:47:23

1

對字典進行迭代結果爲KeyValuePair<> s。只需訪問相應變量的KeyValue成員即可。

0

字典沒有「開始」和「結束」 - 它是無序的。

但是,您可以遍歷鍵或值:

foreach (string key in smartPenImageDictionary.Keys) 
{ 
    ... 
} 

foreach (HtmlInputImage image in smartPenImageDictionary.Values) 
{ 
    ... 
} 

或鍵/值對:(或課程var,使最後的情況要好得多)

foreach (KeyValuePair<string, HtmlInputImage> pair in smartPenImageDictionary) 
{ 
    string key = pair.Key; 
    HtmlInputImage image = pair.Value; 
    ... 
} 

1

類似這樣的:

foreach (KeyValuePair<string, HtmlInputImage> kvp in smartPenImageDictionary) 
{ 
    Console.WriteLine("Value " + kvp.Value); 
} 
0

我假設你想要它們,就像IList<T>提供的一樣。據我所知是沒有保證的Dictionary<Tkey,TValue>秩序,從而爲你添加和刪除的項目,甚至稱這再次它可能會改變你需要

mydictionary.ToList(); 

不過。一種解決方案是編寫自己的Collection,它有一個可以使用的自定義索引器。

相關問題