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