PLINQ で使用したい列挙型が 2 つありますが、それらを正しく組み合わせるにはどうすればよいですか? どうぞ:
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)
...
上記はメッセージには適していますが、メッセージとの 1 対 1 の対応で、enumerable から書式設定された lineNums をいくつか含めたいと思います。順序付けられた結果が得られないため、ラムダで整数を連動してインクリメントすることはできません。したがって、基本的には、ラムダへのパラメーターとして 2 つの列挙型を 1 対 1 でマッピングする必要があると思います。
どうすればいいですか?