0

私は複雑なオブジェクトを持っています:

+ Client
     + Products
           + Types
               | TypeId
               | ManagerCode
               | TypeName
                ....

単一のクライアントは、購入した製品のコレクションに関連付けられ、各製品には、関連付けられたタイプのコレクションがあります。

ManagerCode と TypeName の 2 つのプロパティで「タイプ」をソートする必要があります。

例えば:client.Products.ForEach(o => o.Types.OrderBy(o1 => o1.BaseType.ManagerCode));

さて、これを行うと、フロントエンドに返されたリストは実際には順序付けられません。元の並べ替え順序が維持されます。私は何を間違っていますか?

4

2 に答える 2

2

OrderBy元のコレクションを置き換えません。新しくソートされたコレクションを返します。

がリストであると仮定するTypesと、必要です

client.Products.ForEach(o =>
    o.Types = o.Types.OrderBy(o1 => o1.BaseType.ManagerCode).ToList());
于 2012-09-26T15:13:15.980 に答える
1

別の解決策は、メソッドを使用するSortことです。

client.Products.ForEach(o => o.Types.Sort(
    (x, y) => string.Compare(x.BaseType.ManagerCode, y.BaseType.ManagerCode));
于 2012-09-26T15:18:57.553 に答える