Сортировка в заданном порядке - C#

Узнай цену своей работы

Формулировка задачи:

Есть два списка, в первом задаются сортируемые объекты, во втором порядок сортировки (например, по первой букве каждого элемента). Необходимо вывести элементы списка в том порядке, в каком они указаны в списке сортировки. Если (к примеру) начальная буква отсутствует, то элемент не выводится. Это подзадача одной большой задачи, я сделал ее на двух циклах, вопрос в том, возможно ли сделать эту сортировку одним циклом с помощью Linq. Просто хочу избавиться от одного цикла.
Листинг программы
  1. using System;
  2. using System.Linq;
  3. namespace test1
  4. {
  5. class Program
  6. {
  7. static void Main(string[] args)
  8. {
  9. string[] cars = {"Alfa Romeo", "Aston Martin", "Audi", "Nissan", "Chevrolet", "Chrysler", "Dodge", "BMW", "Ferrari", "Bentley", "Ford", "Lexus", "Mercedes", "Toyota", "Volvo", "Subaru", "Zapor"};
  10. string[] sort = { "Z", "A", "M", "B", "F", "S" };
  11. foreach (string s in sort)
  12. {
  13. foreach (string c in cars.Where(a => a.Substring(0,1) == s))
  14. {
  15. Console.WriteLine(c);
  16. }
  17. }
  18. Console.ReadKey();
  19. }
  20. }
  21. }

Решение задачи: «Сортировка в заданном порядке»

textual
Листинг программы
  1.             foreach (string s in cars.Join(sort,a=>a.Substring(0,1),b=>b,(a,b) => a))
  2.             {
  3.                 Console.WriteLine(s);
  4.             }

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


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

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

11   голосов , оценка 3.545 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы