📌  相关文章
📜  在C#中将数组作为参数传递

📅  最后修改于: 2021-05-29 21:31:39             🧑  作者: Mango

数组是由通用名称引用的相似类型变量的集合。在C#中,数组是引用类型,因此可以将其作为参数传递给方法。方法可以修改数组元素的值。一维和多维数组都可以作为参数传递给方法。

将一维数组作为参数传递给方法

可以将一维数组传递给一种方法。有多种选择,例如,首先分别声明和初始化数组,然后将其传递给方法。其次,您可以在一行代码中声明,初始化数组并将其传递给方法。

示例1:首先声明并初始化数组,然后将其作为参数传递给方法。

// taking an integer array
// declaring and initializing
// the array
int[] arr = {1, 2, 3, 4};
  
// passing the array as an 
// argument to the method
// Result is the method name
Result(arr);

示例2:在一行代码中声明,初始化数组并将其传递给方法。

Result(new int[] {1, 2, 3, 4});

代码:在下面的程序中,我们将一维数组arr传递给方法Result。该方法是静态的,它将打印传递给它的数组元素。

// C# program for passing the 1-D 
// array to method as argument
using System;
  
class GFG {
      
    // declaring a method 
    static void Result(int[] arr) {
          
        // displaying the array elements
        for(int i = 0; i < arr.Length; i++)
        {
            Console.WriteLine("Array Element: "+arr[i]);
        }
          
    } 
      
    // Main method
    public static void Main() {
          
        // declaring an array 
        // and initializing it
        int[] arr = {1, 2, 3, 4, 5};
          
        // callling the method
        Result(arr);
    }
}

输出:

Array Element: 1
Array Element: 2
Array Element: 3
Array Element: 4
Array Element: 5

将多维数组作为参数传递给方法

您也可以将多维数组传递给方法。有多种选择,例如,首先,您分别声明和初始化多维数组,然后将其传递给方法。其次,您可以在一行代码中声明,初始化数组并将其传递给方法。

示例1:首先声明并初始化数组,然后将其作为参数传递给方法。

// declaring and initializing
// the 2-D array
int[,] arr = { {1, 2, 3, 4}, {5, 6, 7, 8} };
  
// passing the array as an 
// argument to the method
// Result is the method name
Result(arr);

示例2:在单行代码中声明,初始化2-D数组并将其传递给方法。

Result(new int[,] { {1, 2, 3, 4}, {5, 6, 7, 8} });

代码:在下面的程序中,我们将2-D数组arr传递给给出矩阵转置的转置方法。 GetLength()方法用于计算特定维度中元素的总数。

// C# program for finding the transpose 
// of matrix(2-D array) by using array
// as function arguments
using System; 
  
class GFG { 
      
    // temp is used as temporary variable
    static int temp = 0; 
  
  
    // passing 2-D array 'arr' as argument 
    // to find the transpose of matrix
    static void transpose(int[, ] arr) 
    { 
        for (int i = 0; i < arr.GetLength(0); i++) { 
            for (int j = i; j < arr.GetLength(1); j++) { 
                temp = arr[i, j]; 
                arr[i, j] = arr[j, i]; 
                arr[j, i] = temp; 
            } 
        } 
    } 
  
    // to display the transposed matrix
    static void displayresult(int[, ] arr) 
    { 
          
        Console.WriteLine("Matrix After Transpose: ");
          
        for (int i = 0; i < arr.GetLength(0); i++) { 
            for (int j = 0; j < arr.GetLength(1); j++) 
                Console.Write(arr[i, j] + " "); 
            Console.WriteLine(); 
        } 
    } 
      
    // Main Method
    static public void Main() 
    { 
        // declaration of an 2-d array
        int[, ] arr;
          
        // initialzing 2-D array
        // matrix of 4 rows and 4 colums
        arr = new int[4, 4]{ { 1, 2, 3, 4}, 
                             { 5, 6, 7, 8}, 
                             {9, 10, 11, 12}, 
                             {13, 14, 15, 16} };
                               
        Console.WriteLine("Matrix Before Transpose: ");
          
        for (int i = 0; i < arr.GetLength(0); i++) 
        { 
            for (int j = 0; j < arr.GetLength(1); j++) 
                Console.Write(arr[i, j] + " "); 
            Console.WriteLine(); 
        }
          
        Console.WriteLine(); 
          
        // calling transpose method
        transpose(arr);
          
        // calling displayresult method 
        // to display the result
        displayresult(arr); 
    } 
} 

输出:

Matrix Before Transpose: 
1 2 3 4 
5 6 7 8 
9 10 11 12 
13 14 15 16 

Matrix After Transpose: 
1 5 9 13 
2 6 10 14 
3 7 11 15 
4 8 12 16