コード例 #1
0
        public static void CustomSortDemo()
        {
            Console.WriteLine("Default text:\n");
            var str = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.\n" +
                      "Mauris vel purus aliquet, faucibus nisl quis, sollicitudin lectus.\n" +
                      "Nam aliquam scelerisque sem eget ornare.\n" +
                      "Donec at pharetra nulla, a iaculis ex.";

            Console.WriteLine(str);
            var words = str.Split(new char[] { ' ', '.', ',', '\n' }, StringSplitOptions.RemoveEmptyEntries);

            CustomSort41.SortArray(words, (n1, n2) =>
            {
                if (n1.Length != n2.Length)
                {
                    return(n1.Length < n2.Length);
                }
                for (var i = 0; i < n1.Length; i++)
                {
                    if (n1[i] != n2[i])
                    {
                        return(n1[i] < n2[i]);
                    }
                }
                return(false);
            });
            Console.WriteLine();
            Console.WriteLine("Sorted:\n");
            CustomSort41.DisplayArray(words);
        }
コード例 #2
0
        public static void SortThread <T>(T[] arr, Func <T, T, bool> ordering)
        {
            var threadNumber = ++_threadNumber;

            new Thread(() =>
            {
                CustomSort41.SortArray(arr, ordering);
                OnSortFinish?.Invoke($"Sorting done in {threadNumber} thread");
            }).Start();
        }