2012-03-28 56 views
0

我有一个tuple形式的整数元组(1000)的大列表。我该如何去做一个List.Find和并行搜索列表?我正在搜索元组的两个部分(即左侧和右侧元素)。搜索并行元组列表

任何帮助,将不胜感激。

+1

什么语言? C#? Java的? – CAbbott 2012-03-28 14:09:44

+0

该语言是c# – jozamm 2012-03-29 03:33:56

回答

0

从逻辑上将您的列表拆分为块。给每个线程一个子列表进行搜索。如果使用数组,则更容易(从示例的角度来看),因为您可以指定允许每个线程搜索的数组内的边界。

例如,如果你有3个线程和长度为n的数组。你可以让第一个线程从0-n/3的元素中搜索;第二个线程从n/3到2 * n/3搜索;第三个线程从2 * n/3到n搜索。

警告:有3个搜索线程并不意味着搜索并行发生。您的机器上可能没有3个核心/ CPU。

0

如果list是您的最爱和x的名称是您正在搜索的价值,这应该这样做(假设你使用.NET 4.0的工作):

var result = list.AsParallel().Where(tuple => tuple.Item1 == x).ToList();