LINQ Min()和Max()优化

Roe*_*t M 4 c# linq

我在做正确的方面遇到了一些麻烦.

我需要为列表中的列表中的列表选择最小值和最大值

有没有想过如何创建优化类型?

var range = allFilteredCars
            .SelectMany(car => car.LeasingPlans
                .SelectMany(plan => plan.Durations)
                .Select(a => a.MonthlyPrice))
            .ToList();

        var min = range.Min();
        var max = range.Max();
Run Code Online (Sandbox Code Playgroud)

最后Min()Max()感觉不对.

有什么想法吗?

Ips*_*aur 6

我只能想到一种计算方法min,max只需在整个集合上迭代一次就可以使用foreach循环来完成

var min = Int32.MaxValue;
var max = Int32.MinValue;
foreach(var filteredCard in allFilteredCars)
{
    foreach(var leasingPlan in filteredCard.LeasingPlans) 
    {
        foreach(var car in leasingPlan.Durations) 
        {
          if(car.MonthlyPrice < min)
            min = car.MonthlyPrice;
          else if(car.MonthlyPrice > max)
            max = car.MonthlyPrice;
        }
     }
}
Run Code Online (Sandbox Code Playgroud)

假设MonthlyPriceInt

  • 我的想法也是.你可以从迭代列表两次到迭代一次. (2认同)