String character replacement in C#

var str = "1-3-2";
//str[2] = '2'; //<-Error

var sb = new StringBuilder(str);
sb[2] = '2';
sb[4] = '3';
str = sb.ToString();
//str is "1-2-3"