You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#如何用循环替代多if语句从对象列表按指定字段筛选最大值对象

优化方案

你只需要遍历已经存在的BLibShelf图书列表,逐个判断实例的BCopies字段是否等于最大值即可,同时还可以顺便优化最大值的计算逻辑,避免手动逐个读取所有Book实例的BCopies:

  1. 首先在代码顶部引入LINQ命名空间,用来简化最大值计算逻辑
using System.Linq;
  1. 替换原有最大值计算和所有重复if判断的代码,修改为以下逻辑:
// 直接从图书列表计算BCopies最大值,不需要单独构造values列表
int maxBorrowCount = BLibShelf.Max(book => book.BCopies);

// 遍历所有图书,判断是否符合最受欢迎读物的条件
foreach (Book book in BLibShelf)
{
    if (book.BCopies == maxBorrowCount)
    {
        Console.WriteLine(book);
    }
}

额外可选优化点

你现有Book类中的TotalCopy方法逻辑存在错误,当前返回的是BCopies + BCopies,按照字段含义总馆藏应该为在馆数量+借出数量,可修改为:

public int TotalCopy()
{
    return Libcopies + BCopies;
}

内容的提问来源于stack exchange,提问作者MsnimROD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 00:54:01