4

Dictionary からキーのリストを除外し、除外された新しい辞書を返す linq クエリを見つけようとしています。

var allDictEnteries = new Dictionary<string, string>
                                     {
                                         {"Key1", "Value1"},
                                         {"Key2", "Value2"},
                                         {"Key3", "Value3"},
                                         {"Key4", "Value4"},
                                         {"Key5", "Value5"},
                                         {"Key6", "Value6"}
                                     };
var keysToBeFiltered = new List<string> {"Key1", "Key3", "Key6"};

新しい辞書には、次のエントリのみが含まれている必要があります

"Key2", "Value2"
"Key4", "Value4"
"Key5", "Value5"

私は元の辞書のコピーを作成して Dictionary.Remove を実行したくありません。それよりも効率的な方法があるのではないかと考えています。

ご協力いただきありがとうございます

4

1 に答える 1

15

元の辞書をフィルタリングしToDictionaryて、結果に使用できます。

var keysToBeFiltered = new HashSet<string> {"Key1", "Key3", "Key6"};
var filter = allDictEnteries
    .Where(p => !keysToBeFiltered.Contains(p.Key))
    .ToDictionary(p => p.Key, p => p.Value);
于 2012-06-06T02:13:29.020 に答える