Сортировка List состоящего из своего класса - C#

Узнай цену своей работы

Формулировка задачи:

Основная задача сделать сортировку по столбца в DataGridView, данные которого хранятся в List<mFiles> (mFiles - мой класс) mFiles элемент содержит данные для одной строки DataGridView,

данные выводятся с помощью метода

с указанием индекса нужного элемента (можно сказать столбца) Нужно сохранить структуру данных в DataGridView и list, однако обычная сортировка DataGridView вроде не хранит последовательности. Поразмыслив я решил, что стоит фильтровать сами данные в List, но не знаю как это сделать с классом. Причем данные хотелось фильтровать, как фильтрует их windows... Спрашивал тут по этому поводу, мне подсказали вот такой метод для List<string>
Листинг программы
  1. public class LogicalStringComparer : IComparer<string> //Сортировка
  2. {
  3. [DllImport("shlwapi.dll", CharSet = CharSet.Unicode, ExactSpelling = true)]
  4. static extern int StrCmpLogicalW(string x, string y);
  5. public int Compare(string x, string y)
  6. {
  7. return StrCmpLogicalW(x, y);
  8. }
  9. }
  10. ...
  11. List<string> _list = new List<string>();
  12. _list.Sort(new LogicalStringComparer());
  13. ...

Решение задачи: «Сортировка List состоящего из своего класса»

textual
Листинг программы
  1. class Program
  2.     {
  3.         static void Main(string[] args)
  4.         {
  5.             List<Example> exL = new List<Example>()
  6.             {
  7.                 new Example
  8.                 {
  9.                     Text = "текст",
  10.                     Val = 11,
  11.                 },
  12.                 new Example
  13.                 {
  14.                     Text = "текст",
  15.                     Val = 21,
  16.                 },
  17.                 new Example
  18.                 {
  19.                     Text = "текст",
  20.                     Val = 2,
  21.                 },
  22.             };
  23.  
  24.             Console.WriteLine(string.Join("\n",
  25.                 exL.Select(ex => $"{ex.Text } {ex.Val}")));
  26.  
  27.             Console.WriteLine("После сортировки:\n" +
  28.                 string.Join("\n", exL.OrderBy(n => n.Val)
  29.                 .Select(ex => $"{ex.Text } {ex.Val}")));
  30.  
  31.             Console.ReadKey(false);
  32.         }
  33.     }
  34.     class Example
  35.     {
  36.         public string Text { get; set; }
  37.         public int Val { get; set; }
  38.     }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.933 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут