Эй, у меня есть массив строк, и я хочу заменить определенную подстроку в каждом из этих элементов. Есть ли простой способ сделать это, кроме явного итерации массива?Заменить подстроку в каждом элементе массива строк?
Спасибо :-)
Эй, у меня есть массив строк, и я хочу заменить определенную подстроку в каждом из этих элементов. Есть ли простой способ сделать это, кроме явного итерации массива?Заменить подстроку в каждом элементе массива строк?
Спасибо :-)
Вы могли бы перебора массива неявно
arrayOfStrings = arrayOfStrings.Select(s => s.Replace("abc", "xyz")).ToArray();
В конце концов, все, что вы делаете будет делать точно, что в любом случае. Простой цикл for
должен быть точным. Есть красивые решения, связанные с лямбды, такие как Array.ConvertAll
/Enumerable.Select
, но ТБХ не надо:
for(int i = 0 ; i < arr.Length ; i++) arr[i] = arr[i].Replace("foo","bar");
(петля for
имеет наиболее эффективную обработку для массивов и foreach
не вариант из-за для изменения переменной итератора)
Да, сделай простейшую вещь - ты не ошибешься –
Я попытался использовать foreach, могу ли я использовать его также? Мог бы заставить его работать до сих пор, хотя ... – grady
Строго это не заменяет элементы в массиве, он создает новый массив с замененными элементами в. Это заставляет меня различаться, если исходный массивOfStrings ссылался в другом месте, например, если arrayOfStrings был в параметр в методе. –
@grady вы не можете использовать foreach (var s в arrayOfStrings) {s = s.Replace ("foo", "bar"); }, так как вам не разрешено изменять переменную foreach. –