#c# #list
#c# #Список
Вопрос:
У меня есть следующая реализация
public static List<KeyValuePair<int, double>> entries = new List<KeyValuePair<int, double>>();
entries.Add(new KeyValuePair<int, double>(j, min));
Для некоторых математических вычислений я хочу сортировать только это min value
, а не j key
.
Как это можно сделать?
Спасибо.
РЕДАКТИРОВАТЬ: я использую переменные уровня класса, и я пробовал это неоднократно
PSOLib.entries = PSOLib.entries.OrderBy(kvp => kvp.Value).ToList();
lineChart.DataContext = PSOLib.entries;
и значения просто не сортируются. Куда я ввернул?
Комментарии:
1.
entries.OrderBy(o => o.Value)
?
Ответ №1:
entries = entries.OrderBy(kvp => kvp.Value).ToList();
Комментарии:
1. Я использую переменную уровня класса,
PSOLib.entries = PSOLib.entries.OrderBy(kvp => kvp.Value).ToList(); lineChart.DataContext = PSOLib.entries;
и простые значения не сортируются. я пробовал это.2. Вы уверены, что линейная диаграмма не использует их? Если это сторонний элемент управления, он вполне может. Поставьте точку останова после установки записей и проверьте, были ли они отсортированы.
Ответ №2:
entries.OrderBy(kvp => kvp.Value)
или
entries.Sort((l, r) => l.Value.CompareTo(r.Value));