Пример #1
0
 public static void Exercise6()
 {
     EventClass.StringToInt length = new EventClass.StringToInt(EventClass.CountChars);
     Console.WriteLine($"Chars in 'Mulle' = {length("Mulle")}");
 }
Пример #2
0
        static void Main(string[] args)
        {
            List <Person> people = GetPeople();

            people.ForEach(e => Console.WriteLine(e.ToString()));

            /**
             * exercise 1
             */
            //a:
            Console.WriteLine("\n1.a:");
            List <Person> belowScore = people.FindAll(e => e.Score <= 2);

            belowScore.ForEach(e => Console.WriteLine(e.ToString()));


            //b:
            Console.WriteLine("\n1.b:");
            List <Person> EvenScore = people.FindAll(e => e.Score % 2 == 0);

            EvenScore.ForEach(e => Console.WriteLine(e.ToString()));


            //c:
            Console.WriteLine("\n1.c:");
            List <Person> WeightAndScore = people.FindAll(e => e.Score % 2 == 0 && e.Weight > 60);

            WeightAndScore.ForEach(e => Console.WriteLine(e.ToString()));

            //d:

            Console.WriteLine("\n1.d:");
            List <Person> weightDiv3 = people.FindAll(e => e.Score % 3 == 0);

            weightDiv3.ForEach(e => Console.WriteLine(e.ToString()));



            /**
             * exercise 2
             */

            Console.WriteLine("\n2.a:");
            Console.WriteLine($"{people.FindIndex(e => e.Score == 3)}");


            Console.WriteLine("\n2.b:");
            Console.WriteLine($"{people.FindIndex(e => e.Score == 3 && e.Age<=10)}");


            Console.WriteLine("\n2.c:");
            Console.WriteLine($"{people.FindAll(e => e.Score == 3 && e.Age <= 10).Count}");

            Console.WriteLine("\n2.d:");
            Console.WriteLine($"{people.FindIndex(e => e.Score == 3 && e.Age < 8)}");

            Console.WriteLine();

            //2e:
            //If the predicate has no match, then -1 is returned.


            //3:

            Console.WriteLine("\n3:");
            //people.SetAccepted(predicateAsMethod);
            people.SetAccepted(p => p.Score >= 6 && p.Age <= 40);
            people.ForEach(e => Console.WriteLine($"{e}"));

            //4
            Console.WriteLine("\n4:");
            //Ascending
            Console.WriteLine("\nAscending:");
            ScoreAgeSortAscending comparerAscending = new ScoreAgeSortAscending();

            people.Sort(comparerAscending);
            people.ForEach(e => Console.WriteLine($"{e}"));

            Console.WriteLine("\n******** Decending ********");
            //Decending
            ScoreAgeSortDecending comparerDecending = new ScoreAgeSortDecending();

            people.Sort(comparerDecending);
            people.ForEach(e => Console.WriteLine($"{e}"));



            //5

            EventClass.StringToInt del = EventClass.CountChars;

            //6
            Console.WriteLine("\n6:");
            Console.WriteLine(del("hejMedDig1"));
            Console.WriteLine(del("hejMedDig12"));
            Console.WriteLine(del("hejMedDig123"));

            //7

            Console.WriteLine("\n7:");
            Console.WriteLine(EventClass.DelegateUser(del, "hejMedDig1"));


            //8
            Console.WriteLine("\n8 Ascending:");
            //Ascending
            var s = from p in people
                    orderby p.Score, p.Age
            select p;

            s.ToList().ForEach(e => Console.WriteLine(e.ToString()));

            Console.WriteLine("\n8 Decending:");
            //Decending
            var s2 = from p in people
                     orderby p.Score descending, p.Age descending
            select p;

            s2.ToList().ForEach(e => Console.WriteLine(e.ToString()));


            //9a

            Console.WriteLine("\n9a");
            int avgAge = 0;

            people.Sort(OwnCompare9a);
            people.ForEach(e =>
            {
                Console.WriteLine($"{e}");
                avgAge = e.Age;
            }
                           );

            Console.WriteLine($"Average age {avgAge}");

            //b
            Console.WriteLine("\n9b");
            people.Sort(OwnCompare9b);
            people.ForEach(e => Console.WriteLine(e));

            //10

            //10.a

            Console.WriteLine("\n10a");
            int[] numbers = { 34, 8, 56, 31, 79, 150, 88, 7, 200, 47, 88, 20 };

            IEnumerable <int> a = from i in numbers
                                  orderby i
                                  where i >= 10
                                  select i;

            a.ToList().ForEach(e => Console.WriteLine(e));



            //10.b
            Console.WriteLine("\n10b");

            IEnumerable <int> b = from i in numbers
                                  orderby i descending
                                  where i >= 10
                                  select i;

            b.ToList().ForEach(e => Console.WriteLine(e));

            //10.c
            Console.WriteLine("\n10c");
            IEnumerable <string> c = from i in numbers
                                     where i >= 10
                                     select i + " stuff";

            c.ToList().ForEach(e => Console.WriteLine(e));


            //10.d
            Console.WriteLine("\n10d");
            IEnumerable <string> d = from i in numbers
                                     where i >= 10
                                     select i % 2 == 0? i + "even": i + "uneven";

            d.ToList().ForEach(e => Console.WriteLine(e));

            //10.e

            var m = from i in numbers
                    where i >= 10
                    select new { Number = i, Even = i % 2 == 0 ? "even" : "uneven" };

            m.ToList().ForEach(e => Console.WriteLine(e));

            //11
            Console.WriteLine("\n11:");
            people.Reset();
            people.ForEach(e => Console.WriteLine(e));


            //12
            Random     rnd      = new Random();
            List <int> randInts = new List <int>();

            for (int i = 0; i < 100; i++)
            {
                randInts.Add(rnd.Next(1, 101));
            }

            //12a
            int totalOddNums = randInts.Where(e => e % 2 != 0).Count();


            Console.WriteLine($"\n 12a: {totalOddNums}");
            //12b
            int totalDistincNums = randInts.Distinct().Count();

            Console.WriteLine($"\n 12b: {totalDistincNums}");

            //12c
            Console.WriteLine("\n 12c");

            IEnumerable <int> odds = (randInts.Where(e => e % 2 != 0).Select(e => e)).Take(3);

            foreach (int i in odds)
            {
                Console.WriteLine(i);
            }

            Console.WriteLine("\n 12d:");
            //12d
            IEnumerable <int> distinctOdds = randInts.Distinct().Where(e => e % 2 != 0).Select(e => e);

            foreach (int i in distinctOdds)
            {
                Console.WriteLine(i);
            }


            //13
            Console.WriteLine("\n 13:");

            var peopleFirstLetter = from p in people
                                    group p by p.Name[0] into studentGroup
                                    orderby studentGroup.Key
                                    select studentGroup;

            foreach (var v in peopleFirstLetter)
            {
                Console.WriteLine(v.Key);
                foreach (var p in v)
                {
                    Console.WriteLine(p.Name);
                }
            }


            //14
            Console.WriteLine("\n14");

            List <Person> p1 = GetPeople();
            List <Person> p2 = GetPeople2();

            var p3 = from person1 in p1
                     join person2 in p2 on person1.Name equals person2.Name
                     select new { person2.Name, person1.Age, person2.Weight, person1.Score };

            foreach (var p in p3)
            {
                Console.WriteLine(p);
            }
            Console.ReadKey();
        }