2010-11-25 55 views
0

我有一個對象列表,我使用動態LINQ來執行排序。使用動態LINQ對複雜對象進行排序

目的是這樣的,

public class SampleDTO 
    { 
     public string Vendor { get; set;} 
     public string Invoice { get; set; } 
     .. 
     .. 

} 

我使用動態的LINQ庫進行排序此,

var list= new List<SampleDTO>(); 
list.OrderBy("Vendor"); 

如果我通過使用的有效屬性名稱的排序鍵也能正常工作列表(例如供應商)

問題是,如何爲複雜的對象做到這一點。

假設我有一個又一個對象,它是的SampleDTO

public class SampleDTO 
    { 
     public string Vendor { get; set;} 
     public string Invoice { get; set; } 
     public OtherDTO OtherDTO{get;set; } 
     .. 

} 

public class OtherDTO 
{ 
     public string LineId{ get; set;} 
     .. 


} 

如果我想掙夠排序動態的,所以我應該能夠從SampleDTO的直接屬性進行排序或屬性對其他DTO的財產(例如需要在OtherDTO.LineId上排序)

實現此目的的可能方式有哪些?

/BB

回答

2

你可以這樣做:

list.OrderBy("OtherDTO.LineId"); 
+0

TKX依賴的優勢,只是需要時間來測試它 – Illuminati 2010-11-25 13:58:26

+0

有時候,解決的辦法是太明顯了,你沒有看到它:-) – Steven 2010-11-27 12:31:02

4

爲什麼不使用蘭巴語法。

list.OrderBy(sample => sample.OtherDto.LineId);

這具有不硬編碼字符串

相關問題