0

リストを辞書に変換するには、次のように簡単に行うことができます。

list.ToDictionary(v=> v, v=>true);

の最初のパラメータについては、ToDictionary最初のパラメータが辞書の要素であることがわかります。しかし、どういう意味v=> trueですか?

2番目のパラメーターは、タイプがである必要がありますIEqualityComparer。これはどのような目的に役立ちますか?どのようにv=> true同じIEqualityComparerですか?

4

3 に答える 3

1

これが使用される方法です。

2番目のパラメーター(v => true)は、elementSelector各要素から結果要素値を生成する変換関数)です。

1要素を含むリストであり23次のマッピングを持つディクショナリになります(すべての値はtrue):

1: true
2: true
3: true
于 2012-06-12T10:37:16.893 に答える
1

リストに[1,2,3,4]があり、それまでに辞書に変換すると、list.ToDictionary(v=> v, v=>true);辞書にはこの値が含まれます

[1,true]
[2,true]
[3,true]
[4,true].

最初の値はキーであり、2番目の値は値です

編集:

@dksonが言ったように、2番目のパラメーターはelementSelectorです。4つのエントリの3番目に移動すると、これをインテリセンスで確認できます:)

于 2012-06-12T10:38:14.557 に答える
1

MSDNのドキュメントをご覧ください。IEqualityComparerこれは、2番目の引数を取るオーバーロードです。

ToDictionary<TSource, TKey>(IEnumerable<TSource>, Func<TSource, TKey>, IEqualityComparer<TKey>)

ただし、この例では、ディクショナリのFunc<TSource, TElement>の生成を担当するaを使用するオーバーロードを使用しています。

ToDictionary<TSource, TKey, TElement>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource, TElement>)

(あなたの場合、すべての値は単純ですtrue

于 2012-06-12T10:39:09.440 に答える