C#: как отсортировать список объектов на основе списка строк

У меня есть два списка, например

 List<String> l_lstNames = new List<String> { "A1", "A3", "A2", "A4", "A0" };

List<Test> l_lstStudents = new List<Test> 
                            { new Test { Age = 20, Name = "A0" }, 
                              new Test { Age = 21, Name = "A1" }, 
                              new Test { Age = 22, Name = "A2" }, 
                              new Test { Age = 23, Name = "A3" }, 
                              new Test { Age = 24, Name = "A4" }, 
                            };

, где Test — это класс, например

 public class Test
    {
        public String Name;
        public Int32 Age;
    }

. Мне нужно отсортировать элементы в l_lstStudents на основе l_lstNames. Таким образом, отсортированный список будет выглядеть так:

List<Test> l_lstStudents = new List<Test> 
                        {  new Test { Age = 21, Name = "A1" }, 
                           new Test { Age = 23, Name = "A3" }, 
                           new Test { Age = 22, Name = "A2" }, 
                           new Test { Age = 24, Name = "A4" }, 
                           new Test { Age = 20, Name = "A0" }, 
                        };

Теперь я использую для для этого.

Нравится

  1. Создайте новый список объектов Test.

  2. Повторите цикл для l_lstNames и выберите объект Test из l_lstStudent и добавьте его во вновь созданный список. Наконец, назначьте новый список l_lstStudent

. Пожалуйста, помогите мне сделать это простым способом (Linq или Lambda)

9
задан Thorin Oakenshield 9 March 2012 в 11:38
поделиться