0

動的 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

4

2 に答える 2

4

ランバ構文を使用しないのはなぜですか。

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

これには、ハードコードされた文字列に依存しないという利点があります

于 2010-11-25T11:44:55.190 に答える
2

あなたはこれを行うことができます:

list.OrderBy("OtherDTO.LineId");
于 2010-11-25T11:41:59.390 に答える