2013-02-25 18 views
0

我是一名php程序员。不幸的是,我不得不面对一些Aspx问题。关于列表<Object>的ASPX和排序

我有两个数据源列表对象:

List <Event> eventSource=eventSource.ToList(); 
List <News> newsSource=newData.ToList(); 

虽然事件和新闻有相同的字段(ID,标题,描述,LAST_UPDATED),它们被存储在不同的表(新闻事件),和两个表之间没有关系。他们都有last_updated字段,其中包含一个日期时间。我需要将它们加入到一个表中,并通过last_updated desc对它们进行排序。

然后我写一些有趣的事情与我的Java知识(?):

List <Object> resultSource=new List <Object>(); 
foreach (Event eventInfo in eventSource){ 
    resultSource.Add(eventInfo); 
} 

我有循环的newsSource并在resultSource添加。然后我尝试用这个按日期时间排序:

resultSource=resultSource.OrderBy(???).ToList(); 

但是我不知道应该填什么参数?区域,我发现我无法在foreach循环中获取“resultInfo.title”,因为我没有Object类中的“title”字段。

我是否有办法以简单的方式解决这个问题?

+1

如果您可以更改'Event'和'News'类(例如,如果它们声明为'partial'),则可以尝试为它们创建一个通用的'interface'。 – andri 2013-02-25 02:58:47

回答

1

您需要使用lambda表达式。 喜欢的东西:

resultSource=resultSource.OrderBy(res => res.Name).ToList(); 

但与任何属性,要排序的替代Name

+0

我不认为这会对他们有用,因为'Event'和'News'不是相关类型,这就是他们试图排序的列表类型为'object'(和'object'的原因没有“Name”属性)。 – Matthew 2013-02-25 02:54:17

+0

谢谢你的答案。我已经解决了这些问题。首先,我使用resultSource < Event >替换resultSource < Object >。然后,我循环播放新闻来源,在循环中创建一个新的Event对象,将它们从新闻添加回事件“fields by fields”以填充新的Event对象,然后将它添加到resultSource中。最后,我使用Ofer Zelig的OrderBy函数来完成我的工作。 – 2013-02-25 03:08:41