2015-11-22 2 views
1

У меня проблема в присвоении значения конкретного индекса в строке после проверки на тот же индекс: Здесь ниже мой код:не позволяет обновлять значение для конкретного индекса

«бит» является строка и «dirtybit» являются целыми числами.

if (bits.ElementAt(dirtybit).Equals('1')) 
     bits[dirtybit] = '0'; //shows red underlined error 

Ошибка:

Property or Indexer String.this[int] cannot be assigned to -- is only read

  1. Почему я не могу получить доступ к такой же индекс (значение)?

  2. Есть ли обходной путь?

+1

Вы можете использовать небезопасный код и указатели. Но я не думаю, что вам это действительно нужно. Другой способ. Вы можете использовать массив символов и преобразовать его в строку, когда это необходимо. –

+4

@ M.kazemAkhgary или, скорее всего, 'bool' array ... –

+0

@AlexeiLevenkov yeah, если 0 и 1 являются только значениями здесь. –

ответ

2

Строки immutable в C#. Вы не можете изменить их после их создания.

Вы можете использовать StringBuilder, чтобы создать новую строку.

От MSDN:

Strings are immutable--the contents of a string object cannot be changed after the object is created, although the syntax makes it appear as if you can do this.

+0

так как я могу изменить любой символ в строке? –