Сортировка в заданном порядке - 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);
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д