如何优化计算int数组正整数和的简易C#程序?
简化C#数组正整数求和程序的几种方案
嘿,作为刚入门C#的新手能写出这样的程序已经很棒啦!针对计算int数组正整数之和的需求,确实有不少简化和优化的方式,我给你整理几种常见的方案:
1. 简化基础循环写法
如果你的原始代码是类似这样的基础循环:
int[] numbers = { 1, -2, 3, -4, 5 }; int sum = 0; foreach (int num in numbers) { if (num > 0) { sum += num; } } Console.WriteLine(sum);
可以做一些小简化,让代码更紧凑(可读性依然保持很好):
int[] numbers = { 1, -2, 3, -4, 5 }; int sum = 0; foreach (var num in numbers) // 使用var自动推断类型,减少冗余 if (num > 0) sum += num; // 单语句可省略大括号(追求简洁可选,团队开发建议保留大括号提升可读性) Console.WriteLine(sum);
2. 使用LINQ实现极致简洁
C#的LINQ(语言集成查询)专门用来简化集合操作,这是最简洁的实现方式,一行代码就能搞定:
using System.Linq; // 必须引用这个命名空间 int[] numbers = { 1, -2, 3, -4, 5 }; int sum = numbers.Where(n => n > 0).Sum(); Console.WriteLine(sum);
Where(n => n > 0):筛选出数组中所有大于0的元素.Sum():对筛选后的元素求和
这种写法的好处是语义清晰,别人一看就知道你要做什么,代码量极少。
3. 处理边界情况(进阶优化)
如果数组可能为null,可以加个空值判断避免空引用异常:
int[] numbers = null; // 模拟空数组场景 int sum = numbers?.Where(n => n > 0).Sum() ?? 0; // 如果数组为null,默认返回0 Console.WriteLine(sum);
?.:空条件运算符,只有当numbers不为null时才会调用后续方法?? 0:空合并运算符,如果前面的结果为null(当numbers为null时),就返回0
这些方法里,如果你还没接触过LINQ,先把基础循环的写法练熟,等学到LINQ的时候再用更简洁的方式,根据自己的学习阶段选择就好啦!
内容的提问来源于stack exchange,提问作者anderssinho
相关产品推荐
相关产品推荐

