Intereting Posts
Метод MVC4 OAuth HasLocalAccount вызывает InvalidOperationException Насколько важно использовать переменную для DateTime. Сегодня, когда речь идет о производительности? Разница между => константой и {get; } = постоянный Множественные предложения Where в выражениях lambda Создание пользовательского интерфейса для мониторинга и взаимодействия с работающей службой Windows Запросить веб-страницу в c #, обманывая Host Проверка орфографии в C # с использованием Word Interop Перезагрузка изображения в wpf Существует ли шаблон проектирования для обработки, когда код зависит от подтипа двух объектов someString.IndexOf (someString) возвращает 1 вместо 0 в .NET 4 Лучший способ сделать данные (которые могут измениться во время выполнения) доступными для всего приложения? Как открыть один вид из другого представления с помощью MVVM в WPF Сериализация двух словарей сразу Есть ли лучший способ определить количество строк в большом файле txt (1-2 ГБ)? C # десериализовать class, который переместился или был переименован

Удалить определенный символ во всех строках в списке в c #

У меня есть несколько строк в списке, который они

KHIJEFGACDB KHIJEFGBACD KHIJEFGBCDA KHIJEFGCDAB KHIJEFGCDBA KHIJGABCDEF KHIJGABEFCD KHIJGACDBEF KHIJGACDEFB KHIJGAEFBCD KHIJGAEFCDB KHIJGBACDEF KHIJGBAEFCD 

Мне нужно удалить HIJ который доступен во всех строках в списке.

Я сделал программу на C #, как показано ниже

 foreach (string item in items) { item.Replace("HIJ", ""); } Console.WriteLine(items.FirstOrDefault().Length); 

Но все еще отображается 11, что означает, что HIJ не удаляется. Как решить это и получить 8 в качестве ответа.

Строки неизменны в C #. Пытаться

 for (int i = 0; i < items.Length; i++) items[i] = items[i].Replace("HIJ", ""); 

Также обратите внимание на

 foreach (string item in items) 

item не может быть изменен. И, BTW, foreach нельзя использовать для добавления или удаления элементов из исходной коллекции, чтобы избежать непредсказуемых побочных эффектов . См. http://msdn.microsoft.com/en-us/library/ttw7t8t6.aspx .

Как уже отмечалось, строки неизменяемы. string.Replace() возвращает новую строку : она не изменяет существующую строку.

Но вы можете сделать это в одной строке с помощью Linq, примерно так:

 string[] items = GetMeSomeItems() .Select( s => s.Replace("HIJ","") ) .ToArray() ;