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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.545 из 5
Похожие ответы