public override string GenerateCharset(string s)
        {
            s = Decoratee.GenerateCharset(s);

            var uniqueChars = new HashSet <char>();
            var collector   = new StringBuilder(s.Length);

            foreach (var c in s)
            {
                if (!uniqueChars.Contains(c))
                {
                    uniqueChars.Add(c);
                    collector.Append(c);
                }
            }
            return(collector.ToString());
        }
        public override string GenerateCharset(string s)
        {
            s = Decoratee.GenerateCharset(s);

            var collector = new StringBuilder(s.Length * 2);

            foreach (var c in s)
            {
                if (char.IsLetter(c))
                {
                    collector.Append(char.ToLower(c));
                    collector.Append(char.ToUpper(c));
                }
                else
                {
                    collector.Append(c);
                }
            }
            return(collector.ToString());
        }
 public override string GenerateCharset(string s)
 {
     return(Decoratee.GenerateCharset(s).ToLower());
 }