string str = "123456789";
System.Text.StringBuilder result = new System.Text.StringBuilder();
for(int i = 0; i < str.Length; i++)
result.Append(i % 4 == 0 && i > 0? $"-{str[i]}" : $"{str[i]}");
Console.WriteLine($"{result}");
Если пару гигов символов обрабатывать используя string, а не StringBuilder, то станет очень заметна нехватка ресурсов.