2013-06-16 4 views
0

У меня есть 3 разных списка с теми же элементами в нем. (Список)icomparer в нескольких списках

Когда я использую icomparer для сортировки их по дате, моя форма C# сортирует их в каждом списке en, ​​не принимает itemsall вместе и сортирует его после этого.

private List<Blog> lijstPublicBlogs; 
    private List<Blog> lijstRestrictedBlogs; 
    private List<Blog> lijstPrivateBlogs; 

Эти 3 перечислены я, и я хочу, чтобы компаратор сортирует все элементы из всех списков вместе, вместо того, чтобы их сортировки по каждому списку ...

Это моя Comparer делает (Например, сортировка по дате):

Список 1

03-04-2013

05-04-2013

Список 2

04-04-2013

06-04-2013

Список 3

01-04-2013

02-04 -2013

Но то, что я хочу, поставить при сортировке все элементы списка вместе и сделать это: 01-04-2013

02-04-2013

03-04-2013

04-04 -2013

05-04-2013

06-04-2013

Любой получил ключ, как я могу решить эту проблему ... Я действительно appreaciate его!

Что я хочу сделать, это собрать все элементы списка (из 3 списков) вместе и использовать iComparer для элементов.

+2

Это однострочный с Linq, используйте методы Join() и OrderBy(). –

+0

Кажется, вы должны добавить свойство enum, называемое «Доступность» к типу «Blog», и просто иметь один большой список из них, каждый из которых с 'Доступность' установлен соответствующим образом (т.е.' Public', 'Restricted' или 'Private'). –

ответ

3

Эти 3 перечислены я, и я хочу, чтобы компаратор сортирует все элементы из всех списков вместе, вместо того, чтобы их сортировки по каждому списку ...

Я сильно рекомендую вместо для сохранения трех отдельных списков, вы создаете один список с типом, который содержит все три элемента. Затем вы можете отсортировать один список, и в любом случае, вероятно, будет легче работать со связанными с ним элементами. Всякий раз, когда у вас есть несколько коллекций, все из которых синхронизированы, подумайте о создании типа для инкапсуляции всех связанных элементов, чтобы затем создать единый набор такого типа. Вы сэкономите лот головных болей.

+0

Привет, но я использую 3 разных запроса для получения данных из базы данных, поэтому я помещаю их в 3 разных списка ... – Swag

+1

@xVizzi: Это не значит, что вы должны * оставить * их в трех разных списках , Имеет ли это? И почему бы не присоединиться к базе данных, чтобы вы могли просто сделать один запрос? –

Смежные вопросы