C#中使用Linq/Lambda计算数组元素百分比生成新数组
实现方案
直接使用LINQ的投影方法即可完成计算,无需手动编写foreach遍历逻辑,对万级长度的数组没有性能压力。
示例逻辑说明
入参:
- 原始整数数组:
[600, 100, 300, 400, 9990, 50, 0, 0, 10, ...](注:示例中结果对应999的原值应为笔误,按结果反推原值是9990)- 百分比系数:10(即计算每个元素值的10%)
预期输出数组:[60, 10, 30, 40, 999, 5, 0, 0, 1, ...]
代码实现
// 接口返回的原始整数数组 int[] sourceArray = GetArrayFromApi(); // 百分比系数 int percentage = 10; // 方案1:返回整数结果,和示例输出格式一致,整数运算自动截断小数部分 int[] intResult = sourceArray.Select(item => item * percentage / 100).ToArray(); // 方案2:如果需要保留小数精度(比如原值999、系数10时得到99.9),用浮点运算 double[] doubleResult = sourceArray.Select(item => item * percentage / 100d).ToArray();
注意点
Select是LINQ标准投影方法,内部封装了遍历逻辑,不需要手动写foreach循环,代码简洁易维护- 万级数据量下该写法性能和手写foreach几乎无差异,不需要额外做性能优化
- 可根据业务要求选择返回整数结果还是浮点精度结果
内容的提问来源于stack exchange,提问作者Sainath
相关产品推荐
相关产品推荐

