how do I set a character at an index in a string in c#?

后端 未结 7 1285
生来不讨喜
生来不讨喜 2020-11-28 16:28
someString[someRandomIdx] = \'g\';

will give me an error.

How do I achieve the above?

7条回答
  •  伪装坚强ぢ
    2020-11-28 17:03

    If it is of type string then you can't do that because strings are immutable - they cannot be changed once they are set.

    To achieve what you desire, you can use a StringBuilder

    StringBuilder someString = new StringBuilder("someString");
    
    someString[4] = 'g';
    

    Update

    Why use a string, instead of a StringBuilder? For lots of reasons. Here are some I can think of:

    • Accessing the value of a string is faster.
    • strings can be interned (this doesn't always happen), so that if you create a string with the same value then no extra memory is used.
    • strings are immutable, so they work better in hash based collections and they are inherently thread safe.

提交回复
热议问题