public void AddUsingRegularMask(string mask, int start, int end, char separator)
{
if (mask == null)
throw new ArgumentNullException("mask");
if (start < 0 || start >= mask.Length)
throw new ArgumentOutOfRangeException("start");
if (end < 0 || end >= mask.Length || end < start)
throw new ArgumentOutOfRangeException("end");
int i = start;
while (i < end)
{
if (mask[i] == separator && i > start && i < end)
{
// separator in between:
if (mask[i - 1] < mask[i + 1])
AddRange(mask[i - 1], mask[i + 1]);
else
AddRange(mask[i + 1], mask[i - 1]);
}
else
{
// adds an ordinary character:
Add(mask[i]);
}
i++;
}
}