Exemplo n.º 1
0
        public override int GetCharCount(byte[] bytes, int index, int count)
        {
            var r = 0;

            for (var i = index; i < index + count; i++)
            {
                var b1 = bytes[i];
                if (SingleByte.ContainsKey(b1))
                {
                    r++;
                    continue;
                }
                if (i + 1 == index + count)
                {
                    return(r);
                }
                var b2 = bytes[++i];
                if (DoubleByte.ContainsKey((b1, b2)))
                {
                    r++;
                    continue;
                }
                throw new InvalidDataException();
            }

            return(r);
        }