static void Main()
        {
            Random rand = new Random();
            Student[] students = new Student[10];
            string[] firstNames = new string[] { "Niki", "Doncho", "Pesho", "Maria", "Stamat", "Ivan", "Ivo", "Gosho", "Evlogi", "Svetlin" };
            string[] lastNames = new string[] { "Kostov", "Minkov", "Peshev", "Ivanov", "Stamatov", "Popov", "Kenov", "Goshev", "Hristov", "Nakov" };

            for (int i = 0; i < students.Length; i++)
            {
                string firstName = firstNames[rand.Next(0, 10)];
                string lastName = lastNames[rand.Next(0, 10)];
                uint grade = (uint)rand.Next(1, 5);
                Student student = new Student(firstName, lastName, grade);
                students[i] = student;
            }

            Console.WriteLine("STUDENTS");
            var studentsByGrade = students.OrderBy(st => st.Grade).ToList();
            foreach (var student in studentsByGrade)
            {
                Console.WriteLine("{0} {1}, grade --> {2}", student.FirstName, student.LastName, student.Grade);
            }

            Worker[] workers = new Worker[10];
            for (int i = 0; i < workers.Length; i++)
            {
                string firstName = firstNames[rand.Next(0, 10)];
                string lastName = lastNames[rand.Next(0, 10)];
                decimal weekSalary = (decimal)rand.Next(100, 200);
                Worker worker = new Worker(firstName, lastName, weekSalary, 8);
                workers[i] = worker;
            }

            Console.WriteLine("WORKERS");
            var workersByHourMoney = workers.OrderByDescending(w => w.MoneyPerHour()).ToList();
            foreach (var worker in workersByHourMoney)
            {
                Console.WriteLine("{0} {1} --> {2} money per hour", worker.FirstName, worker.LastName, worker.MoneyPerHour());
            }

            var mergedList = students.Union<Human>(workers).OrderBy(h => h.FirstName).ThenBy(h => h.LastName);
            Console.WriteLine("HUMANS LIST");
            foreach (var human in mergedList)
            {
                string type = human.GetType().Name;
                Console.WriteLine("{0} {1} type --> {2}", human.FirstName, human.LastName, type);
            }
        }
Beispiel #2
0
        static void Main()
        {
            Worker w1 = new Worker("Petko", "Georgiev", 500, 8);

            Console.WriteLine("The worker gets {0:F2} money per hour.", w1.MoneyPerHour());

            // Initialize a list of 10 students and sort them by grade in ascending order (use LINQ or OrderBy() extension method).
            List <Student> students = new List <Student>();

            students.Add(new Student("Gosho", "Georgiev", 2));
            students.Add(new Student("Ivan", "Petrov", 5));
            students.Add(new Student("Krisko", "Beats", 6));
            students.Add(new Student("Cvetelina", "Petkova", 5));
            students.Add(new Student("Mitio", "TheEyes", 2));
            students.Add(new Student("Rick", "Astley", 4));
            students.Add(new Student("Petran", "Petranov", 4));
            students.Add(new Student("Todor", "Palazov", 5));
            students.Add(new Student("Georgi", "Kirilov", 3));
            students.Add(new Student("Tina", "Mihaylova", 6));

            var sortedStudents = students.OrderBy(x => x.Grade);

            Console.WriteLine("Students sorted by grade in ascending order:");
            foreach (var student in sortedStudents)
            {
                Console.WriteLine(student);
            }

            Console.WriteLine("-------------------------");

            // Initialize a list of 10 workers and sort them by money per hour in descending order.
            List <Worker> workers = new List <Worker>();

            workers.Add(new Worker("Gosho", "Georgiev", 100, 20));
            workers.Add(new Worker("Ivan", "Petrov", 456, 5));
            workers.Add(new Worker("Krisko", "Beats", 869, 2));
            workers.Add(new Worker("Cvetelina", "Petkova", 1000, 10));
            workers.Add(new Worker("Mitio", "TheEyes", 10000, 1));
            workers.Add(new Worker("Rick", "Astley", 35, 3));
            workers.Add(new Worker("Petran", "Petranov", 256, 6));
            workers.Add(new Worker("Todor", "Palazov", 750, 5));
            workers.Add(new Worker("Georgi", "Kirilov", 900, 9));
            workers.Add(new Worker("Tina", "Mihaylova", 200, 5));

            var sortedWorkers = workers.OrderByDescending(x => x.MoneyPerHour());

            Console.WriteLine("Workers sorted by money per hour in descending order:");
            foreach (var worker in sortedWorkers)
            {
                Console.WriteLine(worker);
            }

            Console.WriteLine("-------------------------");

            // Merge the lists and sort them by first name and last name.
            List <Human> humans = new List <Human>();

            humans.AddRange(students);
            humans.AddRange(workers);

            var sortedHumans =
                from h in humans
                orderby h.FirstName ascending, h.LastName ascending
            select h;

            Console.WriteLine("Sorted humans:");
            foreach (var h in sortedHumans)
            {
                Console.WriteLine(h);
            }
        }
Beispiel #3
0
        static void Main()
        {
            var student = new Student("Gosho", "Keremedchiiski", 4);
            var worker  = new Worker(200, 5, "Petko", "Keshko");

            Console.WriteLine(worker.MoneyPerHour(4));

            List <Student> students = new List <Student>
            {
                new Student("Ivan", "Bogomolkata", 10),
                new Student("Gosho", "Tigura", 10),
                new Student("Petko", "Luvut", 9),
                new Student("Grisho", "Hipopotama", 12),
                new Student("Mitko", "Kenguruto", 5),
                new Student("Georgi", "Kobrata", 7),
                new Student("Mariq", "Kotkata", 4),
                new Student("Stefka", "Tigricata", 3),
                new Student("Sasho", "Mishkata", 8),
                new Student("Maaikul", "Oburkaaniq", 12)
            };

            List <Worker> workers = new List <Worker>
            {
                new Worker(200, 4, "Pesho", "Peshkata"),
                new Worker(215, 5, "Misho", "Keremedchiski"),
                new Worker(1000, 4, "Gosho", "Milionera"),
                new Worker(300, 7, "Mopcho", "Programista"),
                new Worker(600, 5, "Edi", "Dirigenta"),
                new Worker(400, 4, "Petko", "Knijkata"),
                new Worker(90, 7, "Petko", "Bednqka"),
                new Worker(100, 6, "Stoyan", "Slunchogleda"),
                new Worker(120, 4, "Gosho", "Birata"),
                new Worker(170, 5, "Mitko", "Bezimenniq")
            };

            List <Worker> sortedWorkers = workers
                                          .OrderByDescending(x => x.MoneyPerHour(6)).ToList();

            List <Student> sortedStudents = students
                                            .OrderBy(x => x.Grade).ToList();

            for (int i = 0; i < sortedWorkers.Count(); i++)
            {
                Console.WriteLine(sortedWorkers[i].FirstName);
                Console.WriteLine(sortedWorkers[i].LastName);
                Console.WriteLine(sortedWorkers[i].WeekSalary);
                Console.WriteLine(sortedWorkers[i].WorkHoursPerDay);
                Console.WriteLine(sortedWorkers[i].MoneyPerHour(6));
                Console.WriteLine("-------------");
            }
            for (int i = 0; i < sortedStudents.Count(); i++)
            {
                Console.WriteLine(sortedStudents[i].FirstName);
                Console.WriteLine(sortedStudents[i].LastName);
                Console.WriteLine(sortedStudents[i].Grade);
                Console.WriteLine("-------------");
            }

            List <Human> people = new List <Human>();

            people.AddRange(students);
            people.AddRange(workers);

            var sortedPeople = from human in people
                               orderby(human.FirstName)
                               orderby(human.LastName)
                               select human;

            foreach (var n in sortedPeople)
            {
                Console.WriteLine(n.FirstName);
                Console.WriteLine(n.LastName);
                Console.WriteLine("******");
            }
        }