是否可以将 C# 双精度列表中的所有元素除以双列表元素总和(这使得 total = 1)
本文关键字:列表元素 total 双精度 列表 元素 是否 | 更新日期: 2023-09-27 18:30:16
>想象一个如下所示的 doube 列表
List<double> lstDouble=new List<double>{4,6,2,7,1,1};
所以我想要的是将此列表中的所有元素划分为元素的总和(21)。
所以列表在除法后变成:
lstDouble = {4/21,6/21,2/21,7/21,1/21,1/21}
这意味着元素的新总和 = 1
我可以通过迭代等来做到这一点,但我想知道自 Matlab 以来是否有任何捷之短途。我的助理教授一直告诉我,学习Matlab并使用它,但我不想:D我喜欢 C#
谢谢。
C# 4.0 WPF 应用程序
var sum = lstDouble.Sum();
var result = lstDouble.Select(d => d / sum);
- Enumerable.Sum Method
- 可枚举。选择方法
您可以使用
LINQ 执行此操作:
var sum = lstDouble.Sum();
var newLst = lstDouble.Select( x => x/sum );
使用 lambda 表达式:
lstDouble.ForEach(x => x = x/21);
var sum = lstDouble.Sum();
var result = lstDouble.Select(v => v / sum);
这是一个伪代码:
double sum = 0;
for(int i=0; i<array.length; i++)
sum+=array[i];
for(int i=0; i<array.length; i++)
array[i]=array[i]/sum;