Home > Software design >  Need to return an object with the lowest property value from List of objects
Need to return an object with the lowest property value from List of objects

Time:02-28

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:

youngest

Or, now with .NET 6.0:

var youngest = customers.MinBy(c => c.Age);
  •  Tags:  
  • c#
  • Related