У меня есть список классов в моей коллекции, например
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 или что-то для их заказа?
Спасибо
Как насчет:
list.Sort((x,y) => DateTime.Compare(x.date, y.date));
что сортирует существующий список, или:
var sorted = list.OrderBy(x=>x.date).ToList();
что создает второй список.
Если вы хотите отсортировать их на месте, вы можете использовать List
:
test.Sort( (l,r) => l.date.CompareTo(r.date) );
Если вы хотите отсортировать их в новый результирующий набор, то LINQ очень хорош:
var sortedResults = from mc in test
order by mc.date
select mc;
После того, как вы включили свои классы в список, и список завершен:
List<MyClass> testList = new List<MyClass>();
// populate the list...
var orderedList = testList.OrderBy( x => x.date ).ToList();