Сортировка в заданном порядке - C#
Формулировка задачи:
Есть два списка, в первом задаются сортируемые объекты, во втором порядок сортировки (например, по первой букве каждого элемента).
Необходимо вывести элементы списка в том порядке, в каком они указаны в списке сортировки. Если (к примеру) начальная буква отсутствует, то элемент не выводится.
Это подзадача одной большой задачи, я сделал ее на двух циклах, вопрос в том, возможно ли сделать эту сортировку одним циклом с помощью Linq. Просто хочу избавиться от одного цикла.
using System; using System.Linq; namespace test1 { class Program { static void Main(string[] args) { string[] cars = {"Alfa Romeo", "Aston Martin", "Audi", "Nissan", "Chevrolet", "Chrysler", "Dodge", "BMW", "Ferrari", "Bentley", "Ford", "Lexus", "Mercedes", "Toyota", "Volvo", "Subaru", "Zapor"}; string[] sort = { "Z", "A", "M", "B", "F", "S" }; foreach (string s in sort) { foreach (string c in cars.Where(a => a.Substring(0,1) == s)) { Console.WriteLine(c); } } Console.ReadKey(); } } }
Решение задачи: «Сортировка в заданном порядке»
textual
Листинг программы
foreach (string s in cars.Join(sort,a=>a.Substring(0,1),b=>b,(a,b) => a)) { Console.WriteLine(s); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д