Сортировка листа объектов - C#
Формулировка задачи:
У меня есть исходный список объектов по три поля в каждом, мне нужно отсортировать его последовательно по двум полям. Как это сделать, создав новый список, я разобрался. А могу ли я исходный список отсортировать не создавая новый?
class Abc
{
public string a;
public string b;
public string c;
public Abc(string _a, string _b, string _c)
{
this.a = _a;
this.b = _b;
this.c = _c;
}
}
class СортировкаЛиста
{
List<Abc> start = new List<Abc>(); //исходный список
List<Abc> finish = new List<Abc>(); //итоговый список
public void CreateStart() //создаю исходный список
{
start.Add(new Abc("Палуба","Петров","96"));
start.Add(new Abc("Трюм","Иванов","95"));
start.Add(new Abc("Каюта","Сидоров","77"));
start.Add(new Abc("Палуба","Иванов","86"));
start.Add(new Abc("Каюта","Петров","98"));
start.Add(new Abc("Каюта","Иванов","99"));
start.Add(new Abc("Трюм","Петров","94"));
start.Add(new Abc("Трюм","Сидоров","70"));
start.Add(new Abc("Палуба","Сидоров","83"));
start.Add(new Abc("Каюта","Белов","91"));
start.Add(new Abc("Палуба","Белов","56"));
start.Add(new Abc("Трюм","Белов","88"));
}
public void CreatFinish() //сортирую исходный и формирую итоговый
{
foreach (Abc p in start.OrderBy(a => a.a).ThenBy(c => c.c))
{
finish.Add(new Abc(p.a, p.b, p.c));
}
foreach (Abc p in finish)
{
Console.WriteLine("Место {0} Сотрудник {1} Итог {2}", p.a, p.b, p.c);
}
}
}Решение задачи: «Сортировка листа объектов»
textual
Листинг программы
start = start.OrderBy(a => a.a).ThenBy(c => c.c))