Сортировка в заданном порядке - 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);
}