【发布时间】:2020-04-08 02:24:53
【问题描述】:
我正在尝试找到一种方法来传递或使用 .Where() 子句中的集合来加快执行速度,但没有任何运气。这是我想做的:
var matches = superLongEnumerable.Where((x, HashSet<string> dynamicSet) =>
{
var parent = SemiExpensiveCallToGetParent(x);
if(dynamicSet.Contains(parent))
{
// DP optimization to save further computation
return true;
}
var matched = ExpensiveCallToCheckMatch(parent);
if(matched) {
dynamicSet.Add(parent);
}
return matched;
});
据我所知,.Where() 仅支持当前元素,并且可选地支持当前元素的索引。我可以使用.Where() 的替代品吗?
【问题讨论】:
标签: c# .net linq dynamic-programming