Сортировка Dictionary по алфавиту - C#
Формулировка задачи:
Здравствуйте, у меня следующая проблема:
имеется объект типа Dictionary<string,int>. Как мне отсортировать ключи по алфавиту?
И еще одна: как получить индекс ключа?
Например, дан словарь из 50 слов(ключей) (мама, папа, ла..ла..)
как узнать какой индекс имеет слово (дедушка)?
Есть варианты с ToList(), но я не пойму. Еще слышал про вариант с LINQ
Спасибо!
Отвечаю себе на второй вопрос:
myDictionary.Keys.ElementAt(i) - возвращает ключ по индексу, легко через for получить желаемый индекс:
for(var i=0;i<dict.Count;i++) { if (dict.Keys.ElementAt(i) != "Дедушка") continue; GrampIndex = i; //записываем индекс break; }
Решение задачи: «Сортировка Dictionary по алфавиту»
textual
Листинг программы
static unsafe void Main() { // Создание словаря с какими-нибудь значениями var dict = new Dictionary<int, int>() { { 10, 1 }, { 5, 2 }, { 15, 3 }, { 23, 4 } }; PrintDict(dict); // Ключи выведутся в порядке 10, 5, 15, 23. // Удаление ключа 5 dict.Remove(5); // Добавление нового ключа 6 dict.Add(6, 123); // Снова печать PrintDict(dict); // Ключи выведутся в порядке 10, 6, 15, 23. } static void PrintDict<TKey, TValue>(IDictionary<TKey, TValue> dict) { foreach (var pair in dict) Console.WriteLine("{0} {1}", pair.Key, pair.Value); Console.WriteLine(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д