4

假设我有一个像这样的小整数数组:

{10,20,30}

现在对于该数组的项目,我想应用以下公式:

10^(arrayLenght-1) + 20^{arrayLenght-2) + 30^{arrayLenght-3}

有没有办法通过使用 linq 聚合方法来实现这一点,尽管您需要某种迭代器,当我看到这一点时,该聚合没有实现?

4

3 回答 3

15

这是我的做法:

array.Select((num, index) => Math.Pow(num, items.Length - index - 1)).Sum();
于 2013-08-23T12:00:29.197 回答
4

试试这个:

var a = new int[]{10, 20, 30};
int i = 0;
a.Sum(x => Math.Pow(x, a.Length - ++i));

它使用Sum方法,因为它在这里更准确。

你也可以使用:

var a = new int[]{10, 20, 30};
a.Select((x,i)=> Math.Pow(x,a.Length-(i+1)));
于 2013-08-23T11:58:18.057 回答
0

您可以尝试对选择的结果求和,而不是使用聚合

result = values.Select((t, index) => Math.Pow(t, (values.Length - (index + 1)))).Sum();
于 2013-08-23T12:07:06.050 回答