Не могу сообразить, как модифицировать элементы входной последовательности методом расширения ForAll(lamda).
Допустим есть массив:
string[] lines = { "max9", "cat", " joe", "line", "jgeg9nj", "ergeg",
"egerg", "egreg4g", "29fweggf", "wfw99efyopkb" };
Я хочу добавить в конец каждой строке, которая содержит "9" некую метку:
lines.AsParallel().Where(l=> l.Contains("9")==true)
.ForAll(l => l+="MARK");
// Убеждаемся что последовательность осталась без изменений, а жаль
foreach (var line in lines)
Console.WriteLine(line);
Console.ReadLine();
Я так подозреваю что я модифицирую всего лишь копию элемента, а не сам элемент. Как получить ссылку на экземпляр строки внутри лямбды?
Подчеркиваю, что мне нужно сделать это средствами PLINQ, а точнее методом ForAll который выполняется на каждом из элементов последовательности. Не предлагайте очевидные всем способы как это сделать в цикле используя обычный linq.