2012-08-16 38 views
1

我有以下类来实现顺序:LINQ的 - 使用LINQ由一个三人之间的字段(日期时间)

public class Operacao : Valor<Operacao> 
{ 
    public DateTime DataDeAdicao { get; set; } 
    public DateTime? DataDeAlteracao { get; set; } 
    public DateTime? DataDeExclusao { get; set; } 
} 

我所有的主要的类的继承这个类。

我需要一个使用linq的查询,以返回按这三个字段之间的最大日期排序的值。

我试过类似如下:

.OrderBy(f => new[] { f.Operacao.DataDeAdicao, f.Operacao.DataDeAlteracao, f.Operacao.DataDeExclusao }.Max()) 

,但它似乎并没有工作。

+2

而且你试过了什么? – 2012-08-16 19:20:52

+0

“似乎不起作用” - 不编译?没有给你正确的结果? – 2012-08-16 19:24:57

+0

你的例子中还有什么'f'?一个拥有“Operacao”属性的类? – 2012-08-16 19:25:51

回答

3
IEnumerable<Operacao> collection = ...; 
var ordered = collection 
    .OrderBy(op => new[] {op.DataDeAdicao, op.DataDeAlteracao, op.DataDeExclusao}.Max());