gpt4 book ai didi

c# - 如何从列表中找到最低值?

转载 作者:IT王子 更新时间:2023-10-29 04:28:34 25 4
gpt4 key购买 nike

 //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

这是我试图打印出价格最低的汽车信息的代码。但是什么也没有打印出来。

最佳答案

使用 LINQ Min扩展方法:

double lowest_price = list1.Min(car => car.price);

此外,您没有指定,但如果您的集合中没有汽车且 InvalidOperationException 指示“序列不包含任何元素”,这将失败。如果您可能没有车,快速更新可能是:

double lowest_price = list1.Any() ? list1.Min(car => car.price) : 0;

至于为什么您的当前 代码不打印任何内容,那是因为您的初始值为0。没有汽车的值是负数(或小于0)。如果您想继续使用现有循环,请将初始值更改为可能的最高值:

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

请注意,如果您的 list1 汽车是空的,那么这会产生额外的副作用,那么 lowest_price 的值将为 Double.MaxValue。对于您现有的代码,这可能是也可能不是您关心的问题。

如果担心,需要在没有车的情况下返回0,可以稍微调整一下:

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;
}

关于c# - 如何从列表中找到最低值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17658907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com