3

これが重複している場合は申し訳ありませんが、私に合った StackOverflow の投稿が見つかりません。

linq でリスト モデルを使用する方法を学習することにうんざりしています。ここでの問題は、DateTime による並べ替えが効果がないことです。.NET フレームワーク v4.5 を使用しています。SQL DataReader を使用してデータをリスト モデルに読み込みますが、SQL オブジェクトを書き込み/投稿する代わりに、この投稿のためにリスト モデルへのデータの追加を手動で指定します。

public MyInventory : IDisposable
{
    public MyInventory {
        PurchaseId = -1;
        StockDate = null;
    }  
    public void Dispose() {
        //PurchaseId...
        StockDate = null;
    } 
    public long PurchaseId { get; set; }
    public DateTime? StockDate { get; set; }
}

List<MyInventory> modelMyInventory = new List<MyInventory>();

modelMyInventory.Add(new MyInventory { PurchaseId = 2, StockDate = DateTime.Parse("01-02-2010") });
modelMyInventory.Add(new MyInventory { PurchaseId = 5, StockDate = DateTime.Parse("01-03-2011") });
modelMyInventory.Add(new MyInventory { PurchaseId = 7, StockDate = DateTime.Parse("01-01-2010") });

modelMyInventory.OrderByDescending(m => m.StockDate);

ありがとう...

4

3 に答える 3

14

OrderByDescendingメソッドが適切に順序付けられていない場合は、再度割り当て直す必要があります。

modelMyInventory = modelMyInventory.OrderByDescending(m => m.StockDate);
于 2013-06-11T15:41:40.770 に答える
0
modelMyInventory.OrderByDescending(m => m.StockDate);

modelMyInventory実際にはオブジェクトをソートしません。代わりに、並べ替えられた新しい列挙型を返します。したがって、次のように書く必要があります。

modelMyInventory = modelMyInventory.OrderByDescending(m => m.StockDate);
于 2013-06-11T15:41:56.063 に答える
0
modelMyInventory.OrderByDescending(m => m.StockDate);

これは並べ替え ませんmodelMyInventory。これは、 で並べ替えられた新しい列挙を返しますStockDate

新しい変数を作成するか、新しいリストを同じ変数に保存できます。

var modelSorted = modelMyInventory.OrderByDescending(m => m.StockDate);

また

modelMyInventory = modelMyInventory.OrderByDescending(m => m.StockDate).ToList();
于 2013-06-11T15:42:16.813 に答える