我的问题是如何对数组中的所有值进行数学运算。我一直在为每个值进行循环操作,但它只是让我想知道是否有更简单的方法来输出它,和/或提高性能的东西。
例如:
int[] numbers;
numbers[0] = 0;
numbers[1] = 1;
现在,我并不完全关心取[0]和[1],加上或减去它们。更像是,如何在不使用循环的情况下为所有这些添加3?
答案 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();
}