我有一个对象列表,我使用动态LINQ来执行排序。
对象是这样的,
public class SampleDTO
{
public string Vendor { get; set;}
public string Invoice { get; set; }
..
..
}
我使用Dynamic 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的直接属性或OtherDTO的属性进行排序(例如需要在OtherDTO.LineId上排序)
实现这一目标的可能方法是什么?
/ BB
答案 0 :(得分:4)
为什么不使用lamba语法。
list.OrderBy(sample => sample.OtherDto.LineId);
这样做的好处是不依赖于硬编码字符串
答案 1 :(得分:2)
你可以这样做:
list.OrderBy("OtherDTO.LineId");