C#中如何在不使用Linq的情况下计算列表指定区间负数的绝对值之和
不使用LINQ的实现方案
当然可以不用LINQ实现,用基础的循环和条件判断就能完成需求,逻辑清晰直观:
string input = Console.ReadLine(); // 分割输入字符串为字符串数组 string[] strNumArray = input.Split(' '); int[] numArray = new int[strNumArray.Length]; // 手动将字符串数组转为整数数组 for (int i = 0; i < strNumArray.Length; i++) { numArray[i] = Convert.ToInt32(strNumArray[i]); } // 定义目标区间:若要得到结果10,需遍历索引4到6的元素(对应-8、3、-2) int startIdx = 4; int endIdx = 6; int absoluteSum = 0; // 遍历区间内的每个元素 for (int i = startIdx; i <= endIdx; i++) { int currentNum = numArray[i]; if (currentNum < 0) { // 累加负数的绝对值 absoluteSum += Math.Abs(currentNum); } } Console.WriteLine(absoluteSum);
关键说明
- 用
for循环替代LINQ的Select和ToList,手动完成字符串到整数的转换 - 直接遍历指定索引区间(包含起始和结束索引),替代LINQ的
GetRange和Where筛选 - 逐个判断元素是否为负数,累加其绝对值,替代LINQ的
Sum方法
注:你原代码中GetRange(3, 3)是取索引3、4、5的元素(1、-8、3),只能得到结果8;若要得到预期的10,需要调整遍历区间为索引4到6。
内容的提问来源于stack exchange,提问作者the-a-monir
相关产品推荐
相关产品推荐

