I have a list of specific object that looks like this:
var customers = new List<Customer>
{
new Customer { Name = "John", Age = 20 },
new Customer { Name = "Adam", Age = 30 },
new Customer { Name = "Joi", Age = 26 }
};
What is the best way to return the object of customer with the lowest age?
CodePudding user response:
I believe you would achieve that by ordering objects by age first then returning the first element in the list. and you can accomplish that by adding this linq query.
Customer lowestAgeCustomer = Customers.OrderBy(c => c.Age).FirstOrDefault();
CodePudding user response:
This is most efficient way:
var customers = new List<Customer>
{
new Customer { Name = "John", Age = 20 },
new Customer { Name = "Adam", Age = 30 },
new Customer { Name = "Joi", Age = 26 }
};
var youngest = customers.Aggregate((x, y) => x.Age < y.Age ? x : y);
That gives me:
Or, now with .NET 6.0:
var youngest = customers.MinBy(c => c.Age);