2014-12-16 13 views
5

Ich habe die Lösungen, die ich gefunden habe, ausprobiert und kann nicht scheinen, dass dies für mich funktioniert.Sortierliste nach DateTime

Ich habe eine Klasse:

public class InvokeGetReportRequestListResponse 
{ 
    public MarketplaceWebServiceException Error { get; set; } 
    public bool CallStatus { get; set; } 
    public List<RequestedReport> Reports { get; set; } 
} 

public class RequestedReport 
{ 
    public String ReportRequestId; 
    public String ReportType; 
    public DateTime? StartDate; 
    public DateTime? EndDate; 
    public Boolean Scheduled; 
    public DateTime? SubmittedDate; 
    public String ReportProcessingStatus; 
    public String GeneratedReportId; 
    public DateTime? StartedProcessingDate; 
    public DateTime? CompletedDate; 
} 

ich einen Anruf zu einem Dienst:

InvokeGetReportRequestListResponse callResponse = InvokeGetReportRequestList(callRequest); 

Und nun möchte ich in callResponse die Reports Liste sortieren, indem CompletedDate

callResponse.Reports.Sort((x, y) => DateTime.Compare(x.CompletedDate, y.CompletedDate));

Thi s gibt einen Fehler zurück:

Cannot convert lambda expression to type 'System.Collections.Generic.IComparer<WebFeeds.Amazon.API.DataTypes.RequestedReport>' because it is not a delegate type 
+0

Was ist die .NET Framework-Version, die Sie verwenden? Dieser Code sollte in .Net 4 und höher funktionieren –

+0

VS2012 Ziel Framework 4.0. – Fred

Antwort

4

Die Sortierung kann mit Linq über die folgende Anweisung durchgeführt werden.

var Result = callResponse.Report.OrderBy(iItem => iItem.CompletedDate); 
+0

Dies ist die Art, wie ich dachte, ich würde gehen, aber 'callResponse.Report' hat keine' OrderBy' Methode. – Fred

+0

Bitte zeigen Sie die Definition von 'InvokeRepoerRequestListResponse' an. – Codor

+1

@Fred verwenden Sie 'System.Linq'? –