此代碼的工作,但效率不高,因爲它的雙查找的ignored
字典。如何在LINQ語句中使用字典TryGetValue()
方法使其更高效?在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;
問題是我不知道如何在LINQ語句中聲明一個變量用於out參數。
This works。我猜測,確保在變量仍在範圍內時對其進行評估,並且不要嘗試將其與並行LINQ結合使用。 – 2010-07-19 12:40:09
@Joe,確切地說......會有不可預測的效果 – 2010-07-19 18:35:15