using System.Collections.Generic; namespace Ink { public class CharacterSet : HashSet<char> { public static CharacterSet FromRange(char start, char end) { return new CharacterSet ().AddRange (start, end); } public CharacterSet () { } public CharacterSet(string str) { AddCharacters (str); } public CharacterSet(CharacterSet charSetToCopy) { AddCharacters (charSetToCopy); } public CharacterSet AddRange(char start, char end) { for(char c=start; c<=end; ++c) { Add (c); } return this; } public CharacterSet AddCharacters(IEnumerable<char> chars) { foreach (char c in chars) { Add (c); } return this; } public CharacterSet AddCharacters (string chars) { foreach (char c in chars) { Add (c); } return this; } } }