对阵列中的所有值执行Arthimetic

时间:2016-02-26 22:17:25

标签: c# arrays math

我的问题是如何对数组中的所有值进行数学运算。我一直在为每个值进行循环操作,但它只是让我想知道是否有更简单的方法来输出它,和/或提高性能的东西。

例如:

int[] numbers;
numbers[0] = 0;
numbers[1] = 1;

现在,我并不完全关心取[0]和[1],加上或减去它们。更像是,如何在不使用循环的情况下为所有这些添加3?

5 个答案:

答案 0 :(得分:3)

您可以使用LINQ将函数应用于Enumerable中的所有值(例如数组或List)。

var result = numbers.Select(i => i + 3);

这是完整的代码段:

using System;
using System.Linq;

public class Program
{
    public static void Main()
    {
        var numbers = new int[2] {0,1};

        var result = numbers.Select(i => i + 3);

        result.ToList().ForEach(Console.WriteLine); 
    }
}

答案 1 :(得分:1)

Glide.with(getApplicationContext())
     .load("your url")
     .asBitmap()
     .into(new BitmapImageViewTarget(imgView) {
      @Override
      protected void setResource(Bitmap resource) {
       //Play with bitmap
        super.setResource(resource);
      }
    });

这里它将为数组的每个元素添加3。

答案 2 :(得分:1)

这不一定有效或以任何方式比简单循环更好(最终,无论采用何种方法,这都是需要在低水平发生的事情),但Linq是一种采用单线方法的方法,如果这样的话你在追求什么。

var numbers = new[] { 0, 1, 2, 3, 4};
var newNumbers = numbers.Select(n=> n+3).ToArray();

答案 3 :(得分:0)

添加:使用进行投影。选择 + .ToArray 将初始化新的集合,而 .ForEach 将修改元素到位

答案 4 :(得分:-3)

https://msdn.microsoft.com/en-us/library/dd460720(v=vs.110).aspx

只要你的数学不需要顺序发生就可以多线程

static void Main(string[] args)
{
    var numbers = new[] { 1, 2, 3 };
    numbers = numbers.Select(i => i +3).ToArray();

    foreach(var numb in numbers)
    {
        Console.WriteLine(numb);
    }
    Console.ReadKey();
}