我有一个以元组形式的整数元组(1,000)的大型列表。如何进行List.Find和并行搜索列表?我正在搜索元组的两个部分(即左右元素)。
任何帮助都将不胜感激。
答案 0 :(得分:0)
将列表逻辑拆分为块。为每个线程提供一个子列表进行搜索。如果您使用数组,则更容易(从示例角度来看),因为您可以指定允许每个线程搜索的数组中的边界。
例如,如果您有3个线程和一个长度为n的数组。你可以让第一个线程在0-n / 3的元素中搜索;第二个线程从n / 3搜索到2 * n / 3;第三个线程从2 * n / 3搜索到n。
警告:拥有3个搜索线程并不意味着搜索并行发生。您的计算机上可能没有3个内核/ CPU。
答案 1 :(得分:0)
如果list
是您的收藏集的名称,x
是您要搜索的值,则应该这样做(假设您使用的是.net 4.0):
var result = list.AsParallel().Where(tuple => tuple.Item1 == x).ToList();