Reputation:
I have a list of Customers 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?
Upvotes: 1
Views: 104
Reputation: 117057
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);
Upvotes: 5
Reputation: 279
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();
Upvotes: 0