static void Main(string[] args) { char[] arr = new char[] { 'H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd' }; CrazyString crazyString = new CrazyString(arr); Console.WriteLine(crazyString); Console.ReadKey(); }
/// <summary> /// Сравнение по хэшу /// </summary> /// По-идее должно работать быстрее /// <param name="crazyString"></param> /// <param name="hash"></param> /// <returns></returns> public bool Equals(CrazyString crazyString, bool hash) { string firstHash = GetHash(mainArray); string secondHash = GetHash(crazyString.ConvertToChar()); if (firstHash == secondHash) { return(true); } return(false); }
public CrazyString Concat(CrazyString crazyString) { char[] returnedArray = new char[mainArray.Length + crazyString.mainArray.Length]; for (int i = 0; i < mainArray.Length; i++) { returnedArray[i] = mainArray[i]; } for (int i = mainArray.Length, j = 0; i < returnedArray.Length; i++, j++) { returnedArray[i] = crazyString.mainArray[j]; } CrazyString returnedString = new CrazyString(returnedArray); return(returnedString); }
/// <summary> /// Посимвольное сравнение /// </summary> /// <param name="crazyString"></param> /// <returns></returns> public bool Equals(CrazyString crazyString) { //Сделать через расчет хэша, так быстрее будет работать if (mainArray.Length != crazyString.mainArray.Length) { return(false); } for (int i = 0; i < mainArray.Length; i++) { if (mainArray[i] != crazyString.mainArray[i]) { return(false); } } return(true); }