質問する前に十分な調査を行っていないと思われる場合は、ご容赦ください。
問題 ディクショナリ内の値が一意であることを確認する必要があるというビジネス要件に出くわしました。つまり、辞書をフィルタリングする必要があり、そのようなフィルタリングの結果には、一意の値を持つキーと値のペアが含まれている必要があります。
ところで、これは文字列値と文字列キーを持つ単純な辞書です。さらに明確にするために、サンプルの入力値と期待される出力値
を以下に示します。 ", "Item One"}, {"Item2", "Item Two"}, {"Item22", "Item Two"} } この入力に対して、filteredDictionary は次のようになります - { {"Item1", "Item One" }, {"アイテム2", "アイテム2"} }
私が提案した解決策は機能しています
var sourceDictionary = serviceAgent.GetSampleDictionary(); // Simplified for brevity
var filteredDictionary =
sourceDictionary.GroupBy(s => s.Value)
.Where(group => @group.Any())
.Select(g => g.First())
.ToDictionary(kvp => kvp.Key, kvp => kvp.Value);
質問 ロジックを作りすぎていませんか? または、言い換えれば、これを行う簡単な方法はありますか?