Сортировка 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();
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.5 из 5