Как перемешать массив ключ-значение

И немного рекламы:

Перемешать (или рандомизировать) что-то, иногда бывает совсем не простой задачей. Представим, что у вас есть Dictionary, в котором храниться ключ-значение и вам необходимо его перемешать. Готового метода для решения этой задачи нет. Но обо всем по порядку.

Dictionary<string , int> dic = new Dictionary</string><string , int>();
for (int i = 0; i < 10; i++)
	dic.Add(i.ToString(), i);

foreach (KeyValuePair<string, int> item in dic)
{
	Console.WriteLine(string.Format("{0} => {1}", item.Key, item.Value));
}

Console.ReadKey();

Добавляем десять элементов и смотрим результат.

Рандомизация элементов может быть достаточно сложной задачей для новичка. Но есть очень интересное решение: чтобы рандомизировать наш массив, воспользуемся лямбда-выражением в связке с классом Random. В итоге получаем следующий код:

Dictionary</string><string , int> dic = new Dictionary</string><string , int>();
for (int i = 0; i < 10; i++)
	dic.Add(i.ToString(), i);

Random rand = new Random();
dic = dic.OrderBy(x => rand.Next())
   .ToDictionary(item => item.Key, item => item.Value);

foreach (KeyValuePair</string><string , int> item in dic)
{
	Console.WriteLine(string.Format("{0} => {1}", item.Key, item.Value));
}

Console.ReadKey();

Результат работы:

Вот таким образом вы можете использовать лямбда-выражения для перемешивания массива.

Популярность: 4%

Теги: , , ,

Если у вас возникли вопросы, вы можете оставить их в комментариях

Комментарии к статье

Один ответ на “Как перемешать массив ключ-значение”

Оставить комментарий

(обязательно)

(обязательно)


 

MAXCACHE: 0.32MB/0.00032 sec