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); }