c# - 如何对包含动态对象的列表进行排序

标签 c# linq

我有一个包含动态类型对象的列表。当我使用 LINQ OrderBy 方法时,我收到一条错误消息,指出“对象”不包含“日期”的定义。如何按日期对列表进行排序?

List<dynamic> employees = new List<dynamic>();

employees.Add(new
{
    ID = 1,
    Name = "Larry",
    Date = new DateTime(2010, 10, 1),
});

employees.Add(new
{
    ID = 2,
    Name = "Clint",
    Date = new DateTime(2011, 5, 28),
});

employees.Add(new
{
    ID = 3,
    Name = "Jason",
    Date = new DateTime(2011, 7, 6),
});

var query = employees.OrderBy(x => x.Date);

最佳答案

您在同一个程序集中显示的代码吗?

匿名类型不能跨程序集工作,“对象不包含此定义”错误是使用来自两个不同程序集的匿名类型的典型标志

(例如,在 ASP.net MVC 页面中,Controller 可能会返回一个匿名类型作为模型,而 View 可能会尝试使用它 => 恰好会出现该错误)

关于c# - 如何对包含动态对象的列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8404203/

相关文章:

c# - 什么 Windows 窗体组件最适合用于创建日志文件查看器 C#

c# - 图片边框控制换行问题

c# - 按动态属性过滤

c# - 在 LINQ 中使用子查询对某些字段进行分组和求和

vb.net - 从集合中获取数据 'less common as possible'

c# - LINQ 查询 - 需要解释为什么这些示例不同

C# 扩展

c# - 如何动态加载dll并向其传递/获取值?

c# - 在应用程序简历中隐藏软键盘

c# - LINQ Any - 总是返回 false