[ Полезный рекламный блок ]
Попробуйте свои силы в игре, где ваши навыки программирования на C# станут решающим фактором. Переходите по ссылке 🔰.
Для сортировки List<T> по свойству объекта в C# можно использовать методы расширения OrderBy() или OrderByDescending() LINQ, которые являются частью пространства имен System.Linq. Приведем пример сортировки списка объектов типа Person по свойству Age:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
using System; using System.Collections.Generic; using System.Linq; public class Person { public string Name { get; set; } public int Age { get; set; } } public class Example { public static void Main() { List<Person> people = new List<Person> { new Person { Name = "Alice", Age = 25 }, new Person { Name = "Bob", Age = 30 }, new Person { Name = "Charlie", Age = 20 }, new Person { Name = "David", Age = 35 }, }; // Sort by Age in ascending order var sortedPeople = people.OrderBy(p => p.Age); // Print the sorted list foreach (var person in sortedPeople) { Console.WriteLine($"{person.Name}, {person.Age}"); } } } |
В этом примере мы сначала создаем список объектов типа Person, а затем используем метод OrderBy() для сортировки списка по свойству Ageв порядке возрастания. Полученный список затем преобразуется в новый список с помощью метода ToList().
Вы также можете использовать метод OrderByDescending() для сортировки списка по убыванию:
1 2 |
// Sort by Age in descending order var sortedPeople = people.OrderByDescending(p => p.Age); |
Обратите внимание, что OrderBy сортирует список в порядке возрастания, а OrderByDescending — в порядке убывания. Если вы хотите отсортировать список по нескольким свойствам, вы можете связать несколько вызовов OrderBy или OrderByDescending. Например, для сортировки по возрасту в порядке возрастания, а затем по имени в порядке убывания можно сделать следующее:
1 |
var sortedPeople = people.OrderBy(p => p.Age).ThenByDescending(p => p.Name); |