我有一个包含动态类型对象的列表。当我使用 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/