Как отсортировать коллекцию списков классов со свойствами в них?

У меня есть список классов в моей коллекции, например

List<MyClass> test = new List<MyClass>();

В моих классах у меня есть только некоторые свойства

public string id {get; set;}
public DateTime date {get; set;}

Теперь я создаю эти классы, получая несколько запросов от 2 разные таблицы базы данных. Затем я беру эти 2 результата из таблиц базы данных и, используя цикл foreach, создаю новый объект MyClass и помещаю его в свою «тестовую» коллекцию.

Теперь, когда все эти классы помещены в коллекцию списков. Я хочу отсортировать их и упорядочить классы по свойству date.

Как я мог это сделать? Я не могу тогда правильно заказать, когда получаю их из базы данных, так как я получаю их из 2 разных таблиц базы данных, и если заказывать их по отдельности, это будет только упорядочивать их по каждому разделу, но у одной таблицы может быть 12/12/2009, и поэтому стол второй. Поэтому их нужно заказывать вместе.

Так можно ли мне как-нибудь использовать linq или что-то для их заказа?

Спасибо

8
задан rodrigoq 19 September 2011 в 23:16
поделиться

3 ответа

Как насчет:

list.Sort((x,y) => DateTime.Compare(x.date, y.date));

что сортирует существующий список, или:

var sorted = list.OrderBy(x=>x.date).ToList();

что создает второй список.

21
ответ дан 5 December 2019 в 06:23
поделиться

Если вы хотите отсортировать их на месте, вы можете использовать List. Sort:

test.Sort( (l,r) => l.date.CompareTo(r.date) );

Если вы хотите отсортировать их в новый результирующий набор, то LINQ очень хорош:

var sortedResults = from mc in test
                    order by mc.date
                    select mc;
3
ответ дан 5 December 2019 в 06:23
поделиться

После того, как вы включили свои классы в список, и список завершен:

List<MyClass> testList = new List<MyClass>();
// populate the list...

var orderedList = testList.OrderBy( x => x.date ).ToList();
2
ответ дан 5 December 2019 в 06:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: