Beispiel #1
0
        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();
        }
Beispiel #2
0
        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));
        }