2022. április 28., csütörtök

Osztálypéldányok rendezése egyes mezői szerint, egymásba ágyazva is

  

using System;

using System.Collections.Generic;

using System.Linq;

 

namespace classOrdering

{

    class Student

    {

        public string Name { getset; }

        public int Age { getset; }

        public Random rnd;

        public Student()

        {

            rnd = new Random();

            Name = Convert.ToChar(rnd.Next(65,90)).ToString();

            Age = rnd.Next(10);

        }

 

        public string towrite()

        {

            return string.Join(' ',Name, Age);

        }

 

    }

    class Program

    {

        static void Main(string[] args)

        {

            List<Student> students = new List<Student>();

            for (int i = 0; i < 10; i++)

            {

                students.Add(new Student());

                Console.WriteLine(students[i].towrite());

            }      

           

            Console.WriteLine("1. mező szerinti rendezés, a második szerint nincs rendezve ezen belül");

 

            List<Student> orderedListByName = students.OrderBy(x => x.Name).ToList(); //lambda kifejezés System.Linq kell hozzá

 

            for (int i = 0; i < orderedListByName.Count; i++)

            {

                Console.WriteLine($"{orderedListByName[i].Name}  {orderedListByName[i].Age}");

            }

 

            Console.WriteLine("2. mező szerinti rendezés, az első szerint nincs rendezve ezen belül");

 

            List<Student> orderedListByAge = students.OrderBy(x => x.Age).ToList();

 

            for (int i = 0; i < orderedListByAge.Count; i++)

            {

                Console.WriteLine($"{orderedListByAge[i].Name}  {orderedListByAge[i].Age}");

            }

 

            Console.WriteLine("Mindkét mező szerinti rendezés, \nelső rendezési szempont az első mező, \nezen belül a második szerint is rendezve van. \nIlyenkor először a második mező szerint rendezzük, \naztán az első mező szerint.");

 

            List<Student> orderedListTwice = orderedListByAge.OrderBy(x => x.Name).ToList();

 

            for (int i = 0; i < orderedListTwice.Count; i++)

            {

                Console.WriteLine($"{orderedListTwice[i].Name}  {orderedListTwice[i].Age}");

            }

 

            Console.WriteLine("Mindkét mező szerinti rendezés, \nelső rendezési szempont a második mező, \nezen belül az első szerint is rendezve van. \nIlyenkor először az első mező szerint rendezzük, \naztán a második mező szerint.");

 

            List<Student> orderedListTwiceReverse = orderedListByName.OrderBy(x => x.Age).ToList();

 

            for (int i = 0; i < orderedListTwiceReverse.Count; i++)

            {

                Console.WriteLine($"{orderedListTwiceReverse[i].Name}  {orderedListTwiceReverse[i].Age}");

            }

        }

    }

}

Nincsenek megjegyzések:

Megjegyzés küldése