У меня есть два перечисления, которые я хотел бы использовать с PLINQ, как мне правильно их объединить? Они здесь:
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 из перечислимого в однозначном соответствии с сообщениями. Я не могу просто увеличить целое число в лямбде, потому что я не получу упорядоченные результаты. Итак, в основном мне нужно взаимно однозначное сопоставление двух перечислимых в качестве моих параметров с лямбдой, я полагаю.
Как мне это сделать?