Получить максимальный объект по свойству - C#

Узнай цену своей работы

Формулировка задачи:

Допустим есть такой код:
using System;
using System.Linq;
using System.Collections;
using System.Collections.Generic;
public class Employee {
    public int birthYear;
    public string firstName;
    public string lastName;
 
    public static Employee[] GetEmployees() {
        Employee[] actors = new Employee[] {
        new Employee { birthYear = 1964, firstName = "K", lastName = "R" },
        new Employee { birthYear = 1968, firstName = "O", lastName = "W" },
        new Employee { birthYear = 1960, firstName = "J", lastName = "S" },
        new Employee { birthYear = 1964, firstName = "S", lastName = "B" },
      };
        return (actors);
    }
}
public class MainClass {
    public static void Main() {
        int youngestEmployeeAge = Employee.GetEmployees().Max(a => a.birthYear);
        Console.WriteLine(youngestEmployeeAge);
    }
}
он вернет int год рождения, НО как использовать Max чтобы по максимальному году он возвращал сам объект

Employee

? Логически именно так и должен был работать метод Max из коробки((

Решение задачи: «Получить максимальный объект по свойству»

textual
Листинг программы
    public class Employee : IComparable<Employee>
    {
        public int birthYear;
        public string firstName;
        public string lastName;
 
        public static Employee[] GetEmployees()
        {
            Employee[] actors = new Employee[] {
                new Employee { birthYear = 1964, firstName = "K", lastName = "R" },
                new Employee { birthYear = 1968, firstName = "O", lastName = "W" },
                new Employee { birthYear = 1960, firstName = "J", lastName = "S" },
                new Employee { birthYear = 1964, firstName = "S", lastName = "B" },
            };
            return (actors);
        }
 
        public int CompareTo(Employee other)
        {
            return birthYear.CompareTo(other.birthYear);
        }
    }
 
            Employee youngestEmployeeAge = Employee.GetEmployees().Max();
            Console.WriteLine(youngestEmployeeAge.birthYear);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.25 из 5
Похожие ответы