2010-09-16 2 views

ответ

4

Вы могли бы перебора массива неявно

arrayOfStrings = arrayOfStrings.Select(s => s.Replace("abc", "xyz")).ToArray(); 
+0

Я попытался использовать foreach, могу ли я использовать его также? Мог бы заставить его работать до сих пор, хотя ... – grady

+0

Строго это не заменяет элементы в массиве, он создает новый массив с замененными элементами в. Это заставляет меня различаться, если исходный массивOfStrings ссылался в другом месте, например, если arrayOfStrings был в параметр в методе. –

+0

@grady вы не можете использовать foreach (var s в arrayOfStrings) {s = s.Replace ("foo", "bar"); }, так как вам не разрешено изменять переменную foreach. –

6

В конце концов, все, что вы делаете будет делать точно, что в любом случае. Простой цикл for должен быть точным. Есть красивые решения, связанные с лямбды, такие как Array.ConvertAll/Enumerable.Select, но ТБХ не надо:

for(int i = 0 ; i < arr.Length ; i++) arr[i] = arr[i].Replace("foo","bar"); 

(петля for имеет наиболее эффективную обработку для массивов и foreach не вариант из-за для изменения переменной итератора)

+0

Да, сделай простейшую вещь - ты не ошибешься –

Смежные вопросы