public void AddCharAtBegin(char ch)
        {
            if (StreamString.Length == 0)
            {
                Array.Insert(0, 0);
                StreamString.AddCharAtBegging(ch);

                return;
            }

            int pos = Array.GetInverse(StreamString.Length - 1);

            InvertedSuffixArrayInsertSearchStrategy strategy = new InvertedSuffixArrayInsertSearchStrategy(this, pos, ch);
            int first = global::SuffixArray.BinarySearch.BinarySearch.Instance.BinarySearchFirst(0, StreamString.Length, strategy);

            Array.Insert(first, StreamString.Length);

            StreamString.AddCharAtBegging(ch);
        }