2012-08-16 33 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());