C# Replace value of original string in extension method
c#
Solution
Strings are immutable. That's fundamentally impossible.
Problem
I am trying to author an extension method for a string that takes one argument and it appends the argument to the string's value. Here is the behavior I want: ``` public static void AddNumber(this string originalValue, string id) { List<string> ids = originalValue.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToString(); ids.Add(id); string newValue = string.Join(",", ids); originalValue = newValue; } ``` Then I would like to use this as follows: ``` string testing = ""; testing.AddNumber("1"); // value should be 1 testing.AddNumber("2"); // value should be 1,2 testing.AddNumber("3"); // value should be 1,2,3 ``` The issue is that I am seeing this: ``` string testing = ""; testing.AddNumber("1"); // value is "" testing.AddNumber("2"); // value is "" testing.AddNumber("3"); // value is "" ``` Now I have read the this! issue here on StackOverflow, and I am aware that I am doing a similar thing. I can't replace the entire value of the string, I have to modify the contents of the string that is sent through... I just can't find a way to modify it. I've tried modifying the character array and have had no luck. Any ideas?