このコードは機能しますが、ignored
辞書を二重に参照するため非効率的です。LINQ ステートメントで辞書TryGetValue()
メソッドを使用して効率を高めるにはどうすればよいですか?
IDictionary<int, DateTime> records = ...
IDictionary<int, ISet<DateTime>> ignored = ...
var result = from r in records
where !ignored.ContainsKey(r.Key) ||
!ignored[r.Key].Contains(r.Value)
select r;
問題は、out パラメーターに使用する LINQ ステートメント内で変数を宣言する方法がわからないことです。