0

私は現在、辞書を並べ替えるために次のコードを使用しています。

Dictionary<string, TKosStock> NewList = null;
if (SortBy.CompareTo(TSortOptions.sortASC | TSortOptions.sortPRICE) == 0)
   NewList = new Dictionary<string, StockObj>(this.StockItemList.OrderBy(n => n.Value.SellPriceRangeLowGross).ToDictionary(n => n.Key, n => n.Value));

this.StockItemList = new Dictionary<string, TKosStock>(NewList.ToDictionary(n => n.Key, n => n.Value));

これはうまく機能し、リストを正しく再シャッフルします。this.StockItemList次に、値が正しい順序になっていることを確認してループできます。

私がやりたいのは、最初に正しい順序でアイテムを追加することです。SQLクエリが最初に実行されるときに価格が計算されないため、SQLクエリに基づいてこれを行うことはできません。

psこの再シャッフルのオーバーヘッドは低いと思いますが、最初にアイテムを追加するときにそれを実行できる場合は、オーバーヘッドがさらに低くなると思います。

これは可能ですか?

4

1 に答える 1

1

おそらく、順序付けられた辞書(非ジェネリック)を使用します:

http://msdn.microsoft.com/en-us/library/system.collections.specialized.ordereddictionary.aspx

于 2012-09-07T10:08:04.617 に答える