繁体   English   中英

在复杂对象上使用动态LINQ进行排序

[英]Sort using dynamic LINQ on a complex object

我有一个使用动态LINQ进行排序的对象列表。

对象是这样的

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

}

我使用Dynamic Linq库对此进行排序,

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

如果我传递带有列表的有效属性名称的排序键(例如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

为什么不使用lamba语法。

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

这样做的好处是不依赖于硬编码字符串

你可以这样做:

list.OrderBy("OtherDTO.LineId");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM