2012-07-19 132 views
0

我有两个枚举,我想与PLINQ一起使用,我如何正确合并它们?在这里,他们是:如何使用并行linq当两个枚举需要合并

List<Message> messageList=...; 

IEnumerable<int> lineNums=Enumerable.Range(1,messages.Count); 
IEnumerable<Message> messages=messageList; 

概括地说,我想申请消费并行格式一些复杂的时间和线路号映射到的消息。这里是我的意思是(没有行号),因为我不知道如何让他们融入这个表达式:

var formattedLine=messageList.AsParallel().AsOrdered().Select(message => 
    { 
    ... // Some work here to be done in parallel 
    return string.Format(...); // Some formatting here of message 
    } 

我会再使用格式化的结果用一个简单的foreach:

foreach (var line in formattedLine) 
    ... 

好吧,上面的消息是好的,但我想包含一些格式化的lineNums从enumerable与消息一一对应。我不能在lambda中互锁增加一个整数,因为我不会得到有序的结果。所以,基本上我需要将两个枚举类型的一对一映射作为lambda的参数,我想。

我该怎么做?

回答