Вот простой метод расширения с некоторой утилитой:
public static string WithMask(this string s, string mask)
{
var slen = Math.Min(s.Length, mask.Length);
var charArray = new char[mask.Length];
var sPos = s.Length - 1;
for (var i = mask.Length - 1; i >= 0 && sPos >= 0;)
if (mask[i] == '#') charArray[i--] = s[sPos--];
else
charArray[i] = mask[i--];
return new string(charArray);
}
Используйте его следующим образом:
var s = "276000017812008";
var mask = "###-##-##-##-###-###";
var dashedS = s.WithMask(mask);
Вы можете использовать его с любой строкой, и любой символ, кроме # в маске, будет вставлен. Маска будет работать справа налево. Вы можете настроить его, чтобы пойти другим путем, если хотите.
Веселись.