2012-07-19 139 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的參數,我想。

我該怎麼做?

回答