Выборка из Dictionary по ключу - C#
Формулировка задачи:
Всем привет! Первая тема на форуме, прошу сильно не ругаться, если я что-то упустил или затупил.
Держу игровой сервер, на досуге пишу для игры плагины.
Игра на Unity, по этому интеграция c# кода крайне удобная.
Долго искал, как сделать удобный для написания/редактирования следующий код:
При этом
На практике такой код дает возможность вывести в нужном мне порядке (от большего к меньшему) топ игроков, убивших больше всего. Но для каждого ключа приходится дублировать цикл изменяя всего лишь название ключа в цикле.
Уверен, это можно сделать гораздо лаконичнее. Только вот я не нашёл как. Или просто не соображаю.
Буду очень рад, если кто-то подскажет более удобное решение.
foreach (var pair in dbstat.pinfo.OrderBy(pair => pair.Value.kills).Reverse()) { //тело с выводом }
class StoredData { public Dictionary<ulong, Pinfo> pinfo = new Dictionary<ulong, Pinfo>(); public StoredData(){} } class Pinfo { public int kills; public Pinfo(){} } StoredData dbstat;
Решение задачи: «Выборка из Dictionary по ключу»
textual
Листинг программы
var paramEx = Expression.Parameter(typeof(KeyValuePair<ulong, Pinfo>), "x"); var valuePropEx = Expression.PropertyOrField(paramEx, "Value"); var fieldEx = Expression.PropertyOrField(valuePropEx, fieldName); var selectorEx = Expression.Lambda<Func<KeyValuePair<ulong, Pinfo>, double>>(fieldEx, paramEx); var selector = selectorEx.Compile();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д