Fil*_*urt 100 c# arrays integer
有没有比迭代数组更好的方法?
int[] arr = new int[] { 1, 2, 3 };
int sum = 0;
for (int i = 0; i < arr.Length; i++)
{
sum += arr[i];
}
Run Code Online (Sandbox Code Playgroud)
澄清:
更好的主要意味着更清洁的代码,但也欢迎提示性能提升.(就像已经提到的:拆分大型数组).
这并不像我在寻找杀手性能改进 - 我只是想知道这种语法糖是否已经不可用:"有String.Join - 关于int []到底是什么?".
Tom*_*ana 169
如果您可以使用C#3.5和LINQ,请尝试
int sum = arr.Sum();
Run Code Online (Sandbox Code Playgroud)
Ahm*_*eed 64
就在这里.使用.NET 3.5:
int sum = arr.Sum();
Console.WriteLine(sum);
Run Code Online (Sandbox Code Playgroud)
如果您不使用.NET 3.5,您可以这样做:
int sum = 0;
Array.ForEach(arr, delegate(int i) { sum += i; });
Console.WriteLine(sum);
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用Aggregate()扩展方法。
var sum = arr.Aggregate((temp, x) => temp+x);
Run Code Online (Sandbox Code Playgroud)
这取决于你如何更好地定义.如果您希望代码看起来更干净,可以使用其他答案中提到的.Sum().如果您希望操作快速运行并且您有一个大型数组,您可以通过将其分成子总和然后对结果求和来使其平行.