質問

私は辞書からの結果を取得するラムダ式を持っています。

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

表現引っ張るが、私は必要なのペアをバックに、私は、IDEのデバッグモードでそれらを見ることができます。

私はこのバックソースと同じ種類の辞書変換する方法を教えてください。私はsortedDictのTElementがKeyValuePairですけど、私は完全にToDictionary拡張メソッドの構文を理解する問題を抱えています。私はまた、区分的にVaRの結果は、新しい辞書を構築foreach'ingしようとしたが、無駄に。

あり、このような何か(機能的に):

var results = (from entry in dictionary 
               orderby entry.Value descending 
               select entry);
Dictionary<string,float> newDictionary = results as (Dictionary<string,float>);
役に立ちましたか?

解決

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

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

読むこと「結果の各ペアについて、鍵ペアのキーとして生成される新しい辞書にその要素を追加し、その値がペアの値として生成されるであろう。」と

また、ちょうどあなたのサンプルコードに基づいて - あなたはそれはあなたがそれに入れ要素の順序を維持しないようにDictionary<T, U>は、ハッシュテーブルとして実装されていることを心に留めておく必要があります。あなたが注文したマップが必要な場合は、代わりにSortedDictionarySortedListの使用を検討します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top