Проблема в том, что a.Replace(..)
возвращает (ссылку на) новую строку. Вы назначаете эту новую ссылку обратно локальному параметру a
. Однако этот параметр a
является копией ссылки в списке. Обновление a
не не обновляет ссылку в самом списке.
Если вы хотите обновить "на месте", вам придется сделать это по старинке:
for (var i=0; i<arr.Count; i++)
{
arr[i] = arr[i].Replace(" ", "");
}