Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static void Main()
- {
- try
- {
- List<Student> listStudents = new List<Student>();
- listStudents.Add(new Student("Pesho", "Petrov", 3.00));
- listStudents.Add(new Student("Misho", "Kirov", 4.40));
- listStudents.Add(new Student("Gosho", "Goshev", 6.00));
- listStudents.Add(new Student("Dido", "Mishov", 5.55));
- listStudents.Add(new Student("Valeri", "Nakov", 5.45));
- listStudents.Add(new Student("Petio", "Marinov", 2.00));
- listStudents.Add(new Student("Batman", "Vasilev", 2.10));
- listStudents.Add(new Student("Robin", "Kamenikov", 3.20));
- listStudents.Add(new Student("Ninja", "Zagorkov", 4.44));
- listStudents.Add(new Student("Penka", "Filipova", 2.01));
- List<Worker> listWorkers = new List<Worker>();
- listWorkers.Add(new Worker("Gosho", "Zmeia", 200, 19));
- listWorkers.Add(new Worker("Boiko", "Borisov", 100000, 1));
- listWorkers.Add(new Worker("Ceko", "Popov", 100, 2));
- listWorkers.Add(new Worker("Krisi", "Gosova", 500, 8));
- listWorkers.Add(new Worker("Nina", "Koleva", 300, 9));
- listWorkers.Add(new Worker("Kristina", "Babova", 5, 23));
- listWorkers.Add(new Worker("Tom", "Tomov", 300, 5));
- listWorkers.Add(new Worker("Misho", "Shamara", 400, 7));
- listWorkers.Add(new Worker("Gosho", "Popov", 1000, 10));
- listWorkers.Add(new Worker("Gelio", "Vylev", 250, 3));
- //sort students
- //linq
- var sortedStudents =
- (from stud in listStudents
- orderby stud.Grade
- select stud).ToList();
- //Lambda
- var sortredStudents2 = listStudents.OrderBy(x => x.Grade).ToList();
- //sort workers
- //linq
- var sortedWorkers =
- (from worker in listWorkers
- orderby worker.MoneyPerHour() descending
- select worker).ToList();
- //lambda
- var sortedWorkers2 = listWorkers.OrderByDescending(x => x.MoneyPerHour()).ToList();
- //merge lists
- List<dynamic> mergeList = new List<dynamic>(listStudents.Concat<dynamic>(listWorkers));
- //sort by first name than by last name
- //linq
- var mergeSorted =
- (from man in mergeList
- orderby man.FirstName, man.LastName
- select man).ToList();
- //lambda
- var mergeSorted2 = mergeList.OrderBy(x => x.FirstName).ThenBy(x => x.LastName).ToList();
- }
- catch (ArgumentException err)
- {
- Console.WriteLine(err.Message);
- }
- }
- public abstract class Human
- {
- private string firstName;
- private string lastName;
- public string FirstName
- {
- get {return this.firstName;}
- }
- public string LastName
- {
- get { return this.lastName; }
- }
- public Human(string firstName, string lastName)
- {
- this.firstName = firstName;
- this.lastName = lastName;
- }
- }
- public class Student : Human
- {
- private double grade;
- public double Grade
- {
- get { return this.grade; }
- private set
- {
- if (value < 2 || value > 6)
- {
- throw new ArgumentException("Invalid grade");
- }
- this.grade = value;
- }
- }
- public Student(string firstName, string lastName, double grade)
- : base(firstName, lastName)
- {
- this.Grade = grade;
- }
- }
- public class Worker : Human
- {
- private decimal weekSalary;
- private int workHoursPerDay;
- public decimal WeekSalary
- {
- get
- {
- return this.weekSalary;
- }
- private set
- {
- if (value <= 0)
- {
- throw new ArgumentException("Week salary must be positive!");
- }
- this.weekSalary = value;
- }
- }
- public int WorkHoursPerDay
- {
- get
- {
- return this.workHoursPerDay;
- }
- private set
- {
- if (value <= 0 || value > 23)
- {
- throw new ArgumentException("Hours must be between 1 and 23 :)");
- }
- this.workHoursPerDay = value;
- }
- }
- public Worker(string firstName, string lastName, decimal weekSalary, int workHoursPerDay)
- : base(firstName, lastName)
- {
- this.WeekSalary = weekSalary;
- this.WorkHoursPerDay = workHoursPerDay;
- }
- public decimal MoneyPerHour()
- {
- return this.weekSalary / this.workHoursPerDay * 5;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment