【发布时间】:2014-11-04 19:27:30
【问题描述】:
我有以下
var links = new ConcurrentDictionary<int, Link>();
其中填充了大约 20k 条记录,我有另一个字符串数组(列表),我使用以下方法将其转换为 int 数组。
var intPossible = NonExistingListingIDs.Select(int.Parse); //this is very fast but need to be done
这是相当快的。但我想创建一个新列表或仅过滤掉与 intPossible 数组中与 ConcurrentDictionary 的 Key 元素匹配的实际内容的“链接”。
我使用 where 子句进行以下操作,但实际过滤需要大约 50 秒,这对于我想要做的事情来说非常慢。
var filtered = links.Where(x => intPossible.Any(y => y == x.Key)).ToList();
我知道 intersect 非常快,但我有一个整数数组,并且 intersect 不能针对 ConcurrentDictionary 使用它
我怎样才能过滤链接更快而不是 50 秒。
【问题讨论】:
标签: c# performance linq