private void AddSet(String set) {
int i;
if (_canonical && RangeCount() > 0 && set.Length > 0 &&
set[0] <= GetRangeAt(RangeCount() - 1)._last)
_canonical = false;
for (i = 0; i < set.Length - 1; i += 2) {
_rangelist.Add(new SingleRange(set[i], (char)(set[i + 1] - 1)));
}
if (i < set.Length) {
_rangelist.Add(new SingleRange(set[i], Lastchar));
}
}