How to find the lowest value from the list?
c#
Solution
Use the LINQ `Min` extension method:
double lowest_price = list1.Min(car => car.price);
Also, you didn't specify, but this will fail if you have no cars in your set with an `InvalidOperationException` indicating "Sequence contains no elements". If it's possible you have no cars, a quick update might be:
double lowest_price = list1.Any() ? list1.Min(car => car.price) : 0;
As to why your current code prints nothing it's because your initial value is `0`. No car has a value that is negative (or less than `0`). If you want to keep using your existing loop, change the initial value to the highest possible value:
double lowest_price = Double.MaxValue;
foreach(Cars a in list1){
if(a.price <= lowest_price){
lowest_price = a.price;
Console.WriteLine(a.price);
}
}//end of loop
Note that this has the additional side effect that if your `list1` of cars is empty, then the `lowest_price` value will be `Double.MaxValue`. This may or may not be a concern for you with your existing code.
If it is a concern, and need to return `0` if there are no cars, you can make a slight adjustment:
double lowest_price;
if (list1.Any()){
lowest_price = Double.MaxValue;
foreach(Cars a in list1){
if(a.price <= lowest_price){
lowest_price = a.price;
Console.WriteLine(a.price);
}
}//end of loop
}
else{
lowest_price = 0;
}
Problem
``` //create the new object for cars Cars s1 = new Cars("Toyota", 2005, 500000, "White", "good");//Car1 Ob Cars s2 = new Cars("Honda", 2004, 550000, "Black", "fine");//Car2 Ob Cars s3 = new Cars("Nissen", 2012, 490000, "Yellow", "best");//Car3 Ob Cars s4 = new Cars("Suzuki", 2012, 390000, "Blue", "fine");//Car4 Ob Cars s5 = new Cars("BMW", 2012, 1000000, "Green", "Good");//Car5 Ob //Create list to add objects into the memory List<Cars> list1 = new List<Cars>(); list1.Add(s1);list1.Add(s2);list1.Add(s3);list1.Add(s4);list1.Add(s5); //cars info which has the lowest price double lowest_price = 0; foreach(Cars a in list1){ if(a.price <= lowest_price){ lowest_price = a.price; Console.WriteLine(a.price); } }//end of loop ``` That's the code which I am trying to print out the the cars info which has the lowest price. But nothing gets print out.