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

如何优化计算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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:50:25