user18327769
user18327769

Reputation:

Need to return an object with the lowest property value from List of objects

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

Answers (2)

Enigmativity
Enigmativity

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:

youngest

Or, now with .NET 6.0:

var youngest = customers.MinBy(c => c.Age);

Upvotes: 5

Mahmoud Hefny
Mahmoud Hefny

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

Related Questions