此代码的工作,但效率不高,因为它的双查找的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