Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.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# 二维阵列显示错误_C#_Arrays_Methods_Multidimensional Array - Fatal编程技术网

C# 二维阵列显示错误

C# 二维阵列显示错误,c#,arrays,methods,multidimensional-array,C#,Arrays,Methods,Multidimensional Array,我应该如何显示我的2D阵列?还是数组的平均和?它不会让我 代码应该显示一个2D数组,添加所有这些数字,计算平均值并显示平均值 // It gives me a richTextBox error. I tried to change 'float' to 'void' - gives // me a return error. // // It says the object require non static field? richTextBox1.AppendText(array[ i,

我应该如何显示我的2D阵列?还是数组的平均和?它不会让我

代码应该显示一个2D数组,添加所有这些数字,计算平均值并显示平均值

// It gives me a richTextBox error. I tried to change 'float' to 'void' - gives
// me a return error.
//
// It says the object require non static field?
richTextBox1.AppendText(array[ i, j] + " ");
richTextBox1.AppendText(" "+ sum.ToString());
return avg; // <<< Error here

static float Avg(int[,] array)
{
    return (float)array.OfType<int>().Average();
    richTextBox1.Clear(); // <<<<==================== Here
    Random rand = new Random();
    float sum = 0;
    int rows = array.GetLength(0);
    int cols = array.GetLength(1);
    for (int i = 0; i < array.Length; i++)
    {
        for (int j = 0; j < cols; j++)
        {
            int value = rand.Next(-100, 100);
            array[i, j] = value;
            richTextBox1.AppendText(value + " "); // <<<<<<<===== Here
            if (value <= 0)
                sum += value;
            float avg = sum / value;
        }
        return avg;//<<<========here
    }
    richTextBox1.AppendText(" Total Average is: " + avg.ToString()); // <<<==== Here
}

private void button6_Click(object sender, EventArgs e)
{
    Avg(A);
}
//它给了我一个richTextBox错误。我试着把float改成void-gives
//给我一个返回错误。
//
//它说物体需要非静态场?
richTextBox1.AppendText(数组[i,j]+“”);
richTextBox1.AppendText(“+sum.ToString());
返回平均值;// 试试这个:

static float Avg(int[,] array)
{
   return (float)array.OfType<int>().Average();
}
更新-适用于锯齿阵列

static float Avg(int[][] array)
{
   return (float)array.SelectMany(a => a).Average();
}

void Main()
{
     int[][] array = 
    {
        new int[] {1,2,3},
        new int[] {4,5}
    };
    Console.WriteLine(Avg(array));
}
更新2 如果您想按自己的方式进行,请尝试以下方法:

    private void Avg(int [,] array)
{   
    richTextBox1.Clear();

    float sum = 0;
    int rows = array.GetLength(0);
    int cols = array.GetLength(1);
    for (int i = 0; i < rows; i++)
    {
        for (int j = 0; j < cols; j++)
        {                
            richTextBox1.AppendText(array[i,j] + " ");                
            sum += array[i,j];
        }
    }

    richTextBox1.AppendText(" Total Average is: " + (float)sum/(rows*cols));
}
private void Avg(int[,]数组)
{   
richTextBox1.Clear();
浮点数和=0;
int rows=array.GetLength(0);
int cols=array.GetLength(1);
对于(int i=0;i
因为我们不知道,你想用Avg方法做什么。我只是想概括一下:

  • static float Avg
    :在使用表单实例成员(如richTextBox1)时,不能使用
    static
    。请删除“静态”或仅在OnClick方法中移动richTextBox1的用法

  • 不要在需要的地方使用
    return
    。之后的所有内容都不会处理(如果不使用try/finally)。如果要使用返回值,请在处理完方法中的所有内容后的最后一行调用它

  • return avg
    avg
    在当前上下文中是未知的,是否在上一次关闭中定义(您知道您的邻居在关闭的门后做了什么吗?)


  • 关于最终的解决方案,请参考Ned的答案。

    你能删除你对象中的
    static
    属性吗?我删除了static现在我得到了一个float>>AvgCan你能显示你的完整程序吗?@shree.pat18更新它吗?这几乎是所有的请告诉我们完整的方法。这似乎没有什么作用,但他的数组不是锯齿状的,
    int[,]
    不是
    int[][]
    对不起,你是对的。我的意思是:它能在多维数组上工作吗?它能在多维数组上工作,但不能在锯齿数组上工作。@NedStoyanov我能用我的代码做点什么吗?你知道我还没有学会的方法,我也在使用windows应用程序窗体。
        private void Avg(int [,] array)
    {   
        richTextBox1.Clear();
    
        float sum = 0;
        int rows = array.GetLength(0);
        int cols = array.GetLength(1);
        for (int i = 0; i < rows; i++)
        {
            for (int j = 0; j < cols; j++)
            {                
                richTextBox1.AppendText(array[i,j] + " ");                
                sum += array[i,j];
            }
        }
    
        richTextBox1.AppendText(" Total Average is: " + (float)sum/(rows*cols));
    }