7

辞書から結果を取得するラムダ式があります。

var sortedDict = (from entry in dctMetrics 
                  orderby entry.Value descending 
                  select entry);

式は必要なペアをプルバックします。IDEのデバッグモードでそれらを確認できます。

これをソースと同じタイプの辞書に戻すにはどうすればよいですか?sortDictのTElementがKeyValuePairであることは知っていますが、ToDictionary拡張メソッドの構文を完全に理解するのに問題があります。また、varの結果を区分的に作成して新しい辞書を作成しようとしましたが、役に立ちませんでした。

このようなものはありますか(機能的に):

var results = (from entry in dictionary 
               orderby entry.Value descending 
               select entry);
Dictionary<string,float> newDictionary = results as (Dictionary<string,float>);
4

1 に答える 1

21

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

var newDictionary = results.ToDictionary(r => r.Key, r => r.Value);

「結果の各ペアについて、その要素を新しいディクショナリに追加します。ここで、キーはペアのキーとして生成され、値はペアの値として生成されます。」

また、サンプルコードに基づいて、aDictionary<T, U>はハッシュテーブルとして実装されているため、入力した要素の順序は維持されないことに注意してください。順序付けられたマップが必要な場合はSortedDictionary、代わりにまたはを使用することを検討してください。SortedList

于 2009-12-28T17:58:11.990 に答える