如何判断List<Course>列表中所有元素的CumLaude方法均返回true
实现方案
基于LINQ的最简实现(推荐)
你可以直接使用LINQ提供的All扩展方法完成判断,步骤如下:
- 先在代码文件顶部引入LINQ命名空间:
using System.Linq; - 在
DisplayGradeList方法中添加判断逻辑:
public void DisplayGradeList() { // 仅当所有Course实例的CumLaude方法都返回true时,判断条件成立 if (gradeList.All(course => course.CumLaude())) { Console.WriteLine("You graduated Cum Laude"); } // 如果你业务上要求成绩列表不能为空才触发该提示(空列表默认All方法返回true),可以替换为下面的判断 // if (gradeList.Any() && gradeList.All(course => course.CumLaude())) // { // Console.WriteLine("You graduated Cum Laude"); // } }
All方法会遍历集合元素,只要有一个元素不满足条件就会立刻终止遍历返回false,性能开销和手动循环一致,代码更简洁易读。
不使用LINQ的手动循环实现
如果你的项目环境不允许使用LINQ,可以用基础循环实现相同逻辑:
public void DisplayGradeList() { bool isAllCumLaude = true; foreach (var course in gradeList) { if (!course.CumLaude()) { isAllCumLaude = false; break; // 遇到不符合条件的直接跳出循环,不需要继续校验后续元素 } } if (isAllCumLaude) { Console.WriteLine("You graduated Cum Laude"); } }
内容的提问来源于stack exchange,提问作者Ignacio
相关产品推荐
相关产品推荐

