[ Полезный рекламный блок ]
Попробуйте свои силы в игре, где ваши навыки программирования на 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); |