public static SqlString Substring(this ISqlString source, int offset, int count)
        {
            if (source == null || source.IsNull)
            {
                return(SqlString.Null);
            }

            var en = source.GetEnumerator();
            var sb = new StringBuilder(count);

            int index = -1;

            while (en.MoveNext())
            {
                if (++index < offset)
                {
                    continue;
                }

                sb.Append(en.Current);

                if (index == count - 1)
                {
                    break;
                }
            }

#if PCL
            var s = sb.ToString();
            return(new SqlString(s));
#else
            var chars = new char[count];
            sb.CopyTo(0, chars, 0, count);
            return(new SqlString(chars));
#endif
        }