多个列表上的icomparer

时间:2013-06-16 15:40:40

标签: c# forms icomparer

我有3个不同的列表,其中包含相同的项目。 (列表)

当我使用icomparer在日期对它们进行排序时,我的c#表单会在每个列表中对它们进行排序,并且不会将itemsall排在一起并在此之后对其进行排序。

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

我得到的那3个列表,我希望比较器将所有列表中的所有项目排序在一起,而不是按每个列表排序...

这是我的比较器正在做的事情(例如,按日期排序):

列表1

2013年3月4日

2013年5月4日

列表2

2013年4月4日

2013年6月4日

列表3

2013年1月4日

2013年2月4日

但我想要的是,在将所有列表项排序在一起时执行以下操作: 2013年1月4日

2013年2月4日

2013年3月4日

2013年4月4日

2013年5月4日

2013年6月4日

任何人都知道我怎么能解决这个问题......我真的很感激它!

我想要做的是:将所有列表项(来自3个列表)放在一起,并在项目上使用iComparer。

1 个答案:

答案 0 :(得分:3)

  

我得到的那3个列表,我希望比较器将所有列表中的所有项目排序在一起,而不是按每个列表排序...

强烈建议您不要维护三个单独的列表,而是创建一个列表,其类型包含所有三个项目。然后,您可以对单个列表进行排序,无论如何,使用相关项目可能更容易。每当您有多个集合都保持同步时,请考虑创建一个类型来封装所有相关项,这样您就可以创建该类型的单个集合。你会为自己节省很多头疼的事情。