Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 数组和中的Windows应用程序问题_C#_.net_Arrays_Sum - Fatal编程技术网

C# 数组和中的Windows应用程序问题

C# 数组和中的Windows应用程序问题,c#,.net,arrays,sum,C#,.net,Arrays,Sum,给定一个用数字初始化的数组,如何在不使用LINQ或foreach的情况下添加其所有元素 我的不完整代码如下: namespace WindowsApplication5 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } public void Form1_Load(object sender, EventAr

给定一个用数字初始化的数组,如何在不使用LINQ或
foreach
的情况下添加其所有元素

我的不完整代码如下:

namespace WindowsApplication5
{
   public partial class Form1 : Form
   {
      public Form1()
      {
         InitializeComponent();
      }

      public void Form1_Load(object sender, EventArgs e)
      {
         method1(sum1);
         MessageBox.Show("The Sum Is = " + sum1.ToString(), "Addition",MessageBoxButtons.OK,MessageB…
      }
      int sum1;
      int[] str = new int[4] { 1, 2, 3, 4 }; // i want to add this 4 values and to be printed on a messagebox//

      public int method1(int str)
      {
          sum1 = str;
          return sum1;
      }
   }
}
输出显示“总和为0”,而不是10

多谢各位


p.S:我不想使用LINQ或
foreach

来获取数组的和,您可以简单地说:
int sum=myArray.sum()

为此,您需要有:
using System.Linq
,因为这是定义Sum扩展方法的地方

如果您没有linq,那么:

private int CalculateSum(int[] arr){
   int total = 0;
   foreach(int i in arr)
      total += i;
   return total;
}

要获取数组的和,可以简单地说:
intsum=myArray.sum()

为此,您需要有:
using System.Linq
,因为这是定义Sum扩展方法的地方

如果您没有linq,那么:

private int CalculateSum(int[] arr){
   int total = 0;
   foreach(int i in arr)
      total += i;
   return total;
}

首先,你有一些全局变量是不好的。如果不使用您提到的
LINQ
Foreach
,请尝试以下操作:

//Doesn't have to be a button click...just an example.
private void button1_Click(object sender, EventArgs e)
{
   int[] values = new int[4] { 1, 2, 3, 4 };
   int result = Sum(values);
   MessageBox.Show(result.ToString());
}

int Sum(int[] values)
{
   int sum= 0;
   for (int i = 0; i < values.Length; ++i)
   {
       sum += values[i];
   }
   return sum;
}
//不必是点击按钮……只是一个例子。
私有无效按钮1\u单击(对象发送者,事件参数e)
{
int[]值=新的int[4]{1,2,3,4};
int结果=总和(值);
Show(result.ToString());
}
整数和(整数[]值)
{
整数和=0;
对于(int i=0;i
首先,您有一些不好的全局变量。如果不使用您提到的
LINQ
Foreach
,请尝试以下操作:

//Doesn't have to be a button click...just an example.
private void button1_Click(object sender, EventArgs e)
{
   int[] values = new int[4] { 1, 2, 3, 4 };
   int result = Sum(values);
   MessageBox.Show(result.ToString());
}

int Sum(int[] values)
{
   int sum= 0;
   for (int i = 0; i < values.Length; ++i)
   {
       sum += values[i];
   }
   return sum;
}
//不必是点击按钮……只是一个例子。
私有无效按钮1\u单击(对象发送者,事件参数e)
{
int[]值=新的int[4]{1,2,3,4};
int结果=总和(值);
Show(result.ToString());
}
整数和(整数[]值)
{
整数和=0;
对于(int i=0;i
我很好奇你为什么反对
for
循环。你能告诉我们吗


除非我遗漏了什么,否则您似乎有两个选择:
1)使用现有的方法(在本例中是
.Sum()
方法,在
LINQ
中),或者
2)自己编写一个方法来计算总和(这将是
foreach
循环)我很好奇为什么你反对
for
循环。你能告诉我们吗


除非我遗漏了什么,否则您似乎有两个选择:
1)使用现有的方法(在本例中是
.Sum()
方法,在
LINQ
中),或者
2)自己编写一个方法来计算总和(这将是
foreach
循环)不使用
foreach
LINQ
的最简单选项是使用
for
循环或递归。 递归解决方案:

int Sum(int[] arr, int index = 0, int current = 0)
{
  if(index == arr.Length)
    return current;
  return Sum(arr, index+1, current+arr[index]);
}
使用for循环:

int Sum(int[] arr)
{
  int result = 0;
  for(int i = 0; i<arr.Length; i++)
    result+=arr[i];
  return result;
}
int和(int[]arr)
{
int结果=0;

对于(int i=0;i不使用
foreach
LINQ
的最简单选项是使用
for
循环或递归。 递归解决方案:

int Sum(int[] arr, int index = 0, int current = 0)
{
  if(index == arr.Length)
    return current;
  return Sum(arr, index+1, current+arr[index]);
}
使用for循环:

int Sum(int[] arr)
{
  int result = 0;
  for(int i = 0; i<arr.Length; i++)
    result+=arr[i];
  return result;
}
int和(int[]arr)
{
int结果=0;

for(int i=0;iit不适用,它说int不包含sum的定义对不起,我刚才看到你的评论说你不想使用LINQ或foreach。我不确定你是否使用的是没有LINQ的旧版本的.NET,但我能想到的对数组求和的唯一其他方法是使用for循环。它不是working man,sum();不在我的上下文中,我没有使用LINQya如果它是用for循环完成的,那么代码将如何?你能发布它吗?即使你没有使用LINQ,也不应该有任何理由不能为System.LINQ添加using指令。你在使用.NET 3.5或更高版本吗?它不适用,它说int不包含sum的定义对不起,我只是看到您的评论,您不想使用LINQ或foreach。我不确定您是否使用的是没有LINQ的较旧版本的.NET,但我能想到的对数组求和的唯一其他方法是使用for loop。它不是工作人,sum();不在我的上下文中,我没有使用LINQya如果它是用for循环完成的,那么代码会是什么样子?你能发布它吗?即使你没有使用LINQ,也不应该有任何理由不能为System.LINQ添加using指令。你在使用.NET 3.5或更高版本吗?啊-我太傻了-这就是为什么Aliza不能使用LINQ!!我已经添加了我的答案虽然很低,但是对代码的一些评论应该会帮助你学习。方法名称应该是描述性的“method1”是一个很差的例子。你使用全局变量-谷歌为什么有一个坏主意。现在养成好习惯,它们会为你的未来服务。啊-我真愚蠢-这就是为什么Aliza不能使用linq!!!!我有广告下面是我的答案,但只有一些对代码的注释可以帮助你学习。方法名称应该是描述性的“method1”是一个糟糕的例子。你正在使用全局变量-谷歌为什么有一个坏主意。现在养成好习惯,它们将为你的未来服务。问题是:没有foreach循环-我怀疑foreach下周将在课堂上讨论:)问题是:没有foreach循环-我怀疑foreach下周将在课堂上讨论:)