static void Main(string[] args) { string[] arrayOfString = new string[] { "different", "more", "linked", "apple", "pinapple", "sea", "automative", "sun", "foreground" }; ComparatorTwoString comparatorTwoString = Comparator.StringOneGreaterThenStringTwo; for (int i = 0; i < arrayOfString.Length; i++) { for (int j = i; j < arrayOfString.Length; j++) { if (comparatorTwoString.Invoke(arrayOfString[i], arrayOfString[j])) { string temp = arrayOfString[j]; arrayOfString[j] = arrayOfString[i]; arrayOfString[i] = temp; } } } foreach (var item in arrayOfString) { Console.WriteLine(item); } Console.ReadKey(); }
public void Sort() { if (StringsArray == null) { throw new ArgumentNullException(); } ComparatorTwoString comparatorTwoString = Comparator.StringOneGreaterThenStringTwo; for (int i = 0; i < StringsArray.Length; i++) { Console.WriteLine($"Прогресс сортировки {i} из {StringsArray.Length}"); Thread.Sleep(1000); for (int j = i; j < StringsArray.Length; j++) { if (comparatorTwoString.Invoke(StringsArray[i], StringsArray[j])) { string temp = StringsArray[j]; StringsArray[j] = StringsArray[i]; StringsArray[i] = temp; } } } SortDone?.Invoke(this, new SortEventArgs(StringsArray)); }