27

今後の処理に必要のないいくつかの辞書ペアを除外したいと考えています。このサンプル コードを確認してください。

static void Main(string[] args)
{
    var source = new Dictionary<string, dynamic>();

    source.Add("number", 1);
    source.Add("string1", "One");
    source.Add("string2", "Two");
    source.Add("string3", "Three");

    var onlyStrings = source.Where(s => s.Key != "number").ToDictionary(s => s.Key);
}

この場合、onlyStrings はDictionary<string, KeyValuePair<string, object>>

しかし、私は onlyStrings に次のペア (ソース辞書のサブセット) を持たせたい:

  • キー: "string1"、値: "1"
  • キー: "string2"、値: "2"
  • キー: "string3"、値: "3"

そのような結果を得る最良の方法は何ですか?

4

1 に答える 1

34

elementSelector デリゲートも可能にする ToDictionary メソッドへのオーバーロードがあります。

var onlyStrings = source.Where(s => s.Key != "number")
                        .ToDictionary(dict => dict.Key, dict => dict.Value);
于 2013-06-20T01:49:25.240 に答える