Сортировка с использованием динамического LINQ для сложного объекта - PullRequest
0 голосов
/ 25 ноября 2010

У меня есть список объектов, для которых я использую динамический 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

Ответы [ 2 ]

4 голосов
/ 25 ноября 2010

почему бы не использовать синтаксис lamba.

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

Это имеет то преимущество, что не зависит от жестко закодированных строк

2 голосов
/ 25 ноября 2010

Вы можете сделать это:

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