Лучший способ использовать элементы словаря, поскольку мы используем преимущества List - PullRequest
0 голосов
/ 28 мая 2010

Я хочу использовать элементы словаря, как я использую в универсальном классе List, например,

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

Но в словаре нет шансов, как в методе e выше ...

Dictionary<string, HtmlInputImage> smartPenImageDictionary;

Я имею в виду, что я узнал ключевой элемент для словаря ... но что я хочу, я хочу путешествовать от начала списка до конца ...

Ответы [ 5 ]

3 голосов
/ 28 мая 2010

Я не совсем уверен, чего вы хотите достичь, но вот что вы можете сделать со словарем:

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)
{
}
1 голос
/ 28 мая 2010

Примерно так:

foreach (KeyValuePair<string, HtmlInputImage> kvp in smartPenImageDictionary)
{
   Console.WriteLine("Value " + kvp.Value);
}
1 голос
/ 28 мая 2010

Итерация по словарю приводит к KeyValuePair<> с. Просто получите доступ к Key и Value членам соответствующей переменной.

0 голосов
/ 28 мая 2010

Полагаю, вы хотите, чтобы они были в порядке, так же, как IList<T>. Насколько я знаю, для Dictionary<Tkey,TValue> заказ не гарантирован, поэтому вам нужно

mydictionary.ToList();

Однако, когда вы добавляете и удаляете предметы или даже вызываете их снова, это может измениться. Одно из решений - написать свой собственный Collection, в котором есть пользовательский индексатор, который вы можете использовать.

0 голосов
/ 28 мая 2010

В словаре нет «начала» и «конца» - он неупорядочен.

Однако вы можете перебирать ключи или значения:

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

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

или пары ключ / значение:

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

(или, конечно, var делает последний случай более приятным.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...