Сортировка List состоящего из своего класса - C#
Формулировка задачи:
Основная задача сделать сортировку по столбца в DataGridView, данные которого хранятся в List<mFiles> (mFiles - мой класс)
mFiles элемент содержит данные для одной строки DataGridView,
данные выводятся с помощью метода
с указанием индекса нужного элемента (можно сказать столбца) Нужно сохранить структуру данных в DataGridView и list, однако обычная сортировка DataGridView вроде не хранит последовательности. Поразмыслив я решил, что стоит фильтровать сами данные в List, но не знаю как это сделать с классом. Причем данные хотелось фильтровать, как фильтрует их windows... Спрашивал тут по этому поводу, мне подсказали вот такой метод для List<string>public class LogicalStringComparer : IComparer<string> //Сортировка { [DllImport("shlwapi.dll", CharSet = CharSet.Unicode, ExactSpelling = true)] static extern int StrCmpLogicalW(string x, string y); public int Compare(string x, string y) { return StrCmpLogicalW(x, y); } } ... List<string> _list = new List<string>(); _list.Sort(new LogicalStringComparer()); ...
Решение задачи: «Сортировка List состоящего из своего класса»
textual
Листинг программы
class Program { static void Main(string[] args) { List<Example> exL = new List<Example>() { new Example { Text = "текст", Val = 11, }, new Example { Text = "текст", Val = 21, }, new Example { Text = "текст", Val = 2, }, }; Console.WriteLine(string.Join("\n", exL.Select(ex => $"{ex.Text } {ex.Val}"))); Console.WriteLine("После сортировки:\n" + string.Join("\n", exL.OrderBy(n => n.Val) .Select(ex => $"{ex.Text } {ex.Val}"))); Console.ReadKey(false); } } class Example { public string Text { get; set; } public int Val { get; set; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д