示例#1
0
 private static void ShowList <T>(RecursiveLinkedList <T> list, string comment)
 {
     Console.WriteLine($"{comment}:");
     foreach (var element in list)
     {
         Console.WriteLine($" -{element}");
     }
     Console.WriteLine();
 }
示例#2
0
        private static void DemonstrateIntList()
        {
            var list = new RecursiveLinkedList <int>();

            ShowList(list, "the list is empty");

            foreach (var newElement in Enumerable.Range(0, 5))
            {
                list.AddHead(newElement);
            }

            ShowList(list, "int list members");
        }
示例#3
0
        private static void DemonstrateExtensionMetod()
        {
            var list = new RecursiveLinkedList <int>();

            list = list.AddElementToPresortedList(1)
                   .AddElementToPresortedList(7)
                   .AddElementToPresortedList(3)
                   .AddElementToPresortedList(5);
            var newList = list.AddElementToPresortedList(0);

            ShowList(list, "list without zero");
            ShowList(newList, "list with zero");
        }
示例#4
0
        private static void DemonstrateRemoveHeadWithStringList()
        {
            var miniList = new RecursiveLinkedList <string>();

            miniList.AddHead("three");
            miniList.AddHead("two");
            miniList.AddHead("one");
            miniList.AddHead("head");

            ShowList(miniList, "string list members");

            miniList.RemoveHead();
            ShowList(miniList, "headless string list");
        }
示例#5
0
        private static void DemonstrateExceptions()
        {
            Console.WriteLine("--Consider the similarity between the two implimentations behaviour:");
            Console.WriteLine("-LINQ Sort:");
            try
            {
                var libList = new List <ExampleClass> {
                    new ExampleClass {
                        Foo = 6
                    }, new ExampleClass {
                        Foo = 4
                    }
                };
                libList.Sort();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.InnerException.Message);
            }

            Console.WriteLine("-Custom sort inside AddElementToPresortedList():");
            try
            {
                var customList = new RecursiveLinkedList <ExampleClass>();
                customList.AddElementToPresortedList(new ExampleClass {
                    Foo = 4
                })
                .AddElementToPresortedList(new ExampleClass {
                    Foo = 5
                });
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }