c# - 在 C# 中按共享属性对不同对象的列表进行排序

标签 c# asp.net .net entity-framework

我有类(class) Message

 public DateTime DateCreated {get; set;}
 public int MessageId {get; set;}

我还有类 Activity:

public DateTime DateCreated {get; set;}
public int ActivityId {get; set;}

在我的数据库中,我使用 EF 查询这两个项目:

db.Messages.ToList();
db.Activities.ToList(); 

我需要获取这两个列表,将它们放入一个列表中,然后按创建日期排序。我可以使用继承来使 Activity 和 Message 从一些通用的“Dated”类继承,但感觉很乱,尤其是因为这些类已经从其他类继承了。

实现此目标的正确方法是什么?

最佳答案

在这种情况下你可以使用接口(interface):

public interface IDateCreated 
{
  DateTime DateCreated { get; set; }
}

在你的类中实现这个接口(interface),然后你将创建

var list = new List<IDateCreated>();
list.AddRange(db.Messages.ToList());
list.AddRange(db.Activities.ToList());
var result = list.OrderBy(x => x.DateCreated);

关于c# - 在 C# 中按共享属性对不同对象的列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20245524/

相关文章:

c# - 在没有包管理器控制台的情况下安装 C# 库

c# - 单击链接时,asp.net 显示一个带有“确定”按钮的框

asp.net - 使用 ASP.NET 生成打印质量 PDF

c# - 如何通过c#实现OpenID

c# - 尝试将 uint8_t* 从 C# 传递到 C++ 的奇怪问题

.net - 如何实现自定义代理服务器?

c# - 在 MonoDevelop 中更改默认列宽/显示列标尺?

c# - 使用正则表达式从字符串中提取 xml

Azure 中的 ASP.NET Core 环境变量

c# - 如何在 Scala 上使用属性?