📜  C#| Array.Clear()方法

📅  最后修改于: 2021-05-30 00:26:18             🧑  作者: Mango

此方法用于将数组中元素的范围设置为每种元素类型的默认值。

句法:

public static void Clear (Array array, int index, int length);

参数:

例外情况:

  • ArgumentNullException:如果数组为null
  • IndexOutOfRangeException:如果索引小于数组的下限,或者长度小于零,或者indexlength的总和大于数组的大小。

下面是说明Array.Clear()方法的示例:

范例1:

// C# program to demonstrate Array.Clear()
// method for int type value
using System;
using System.Collections.Generic;
  
public class GFG {
  
    // Main Method
    public static void Main()
    {
  
        // Creating and initializing new the String
        int[] myArr = {10, 20, 30, 40};
  
        // Display the values of the myArr.
        Console.WriteLine("Array Before Operation:");
  
        // calling the PrintIndexAndValues() method 
        PrintIndexAndValues(myArr);
        Console.WriteLine();
  
        Array.Clear(myArr, 1, 2);
  
        // Display the values of myArr
        Console.WriteLine("Array After Operation:");
  
        // calling the PrintIndexAndValues() method
        PrintIndexAndValues(myArr);
    }
  
    // Defining the method PrintIndexAndValues 
    public static void PrintIndexAndValues(int[] myArr)
    {
        for (int i = 0; i < myArr.Length; i++) {
            Console.WriteLine("{0}", myArr[i]);
        }
    }
}
输出:
Array Before Operation:
10
20
30
40

Array After Operation:
10
0
0
40

示例2:对于ArgumentNullException

// C# program to demonstrate
// Array.Clear() method
// for ArgumentNullException
using System;
using System.Collections.Generic;
  
public class GFG {
  
    public static void Main()
    {
  
        try {
  
            // Creating and initializing 
            // new the Int with null
            int[] myArr = null;
  
            // Clearing the myArr
            // using Clear() method
            Console.WriteLine("Try to clear the element from null Array:");
            Array.Clear(myArr, 1, 2);
  
            // Display the values of myArr
            Console.WriteLine("Array after operation :");
  
            // calling the PrintIndexAndValues() method 
            PrintIndexAndValues(myArr);
        }
        catch (ArgumentNullException e) {
  
            Console.WriteLine();
            Console.Write("Exception Thrown: ");
            Console.Write("{0}", e.GetType(), e.Message);
        }
        catch (IndexOutOfRangeException e) {
  
            Console.WriteLine();
            Console.Write("Exception Thrown: ");
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }
  
    // Defining the method PrintIndexAndValues 
    public static void PrintIndexAndValues(int[] myArr)
    {
        for (int i = 0; i < myArr.Length; i++) {
            Console.WriteLine("{0}", myArr[i]);
        }
    }
}
输出:
Try to clear the element from null Array:

Exception Thrown: System.ArgumentNullException

示例3:对于IndexOutOfRangeException

// C# program to demonstrate
// Array.Clear() method
// for IndexOutOfRangeException
using System;
using System.Collections.Generic;
  
public class GFG {
  
    // Main Method
    public static void Main()
    {
  
        try {
  
            // Creating and initializing new Int array
            int[] myArr = {10, 20, 30, 40};
  
            // Display the values of myArr
            Console.WriteLine("Array Before Operation:");
  
            // calling the PrintIndexAndValues() method
            PrintIndexAndValues(myArr);
            Console.WriteLine();
  
            // Clearing the myArr
            // using Clear() method
            Console.WriteLine("Taking index out of bound:");
            Array.Clear(myArr, -1, 2);
  
            // Display the values of myArr
            Console.WriteLine("Array After Operation:");
  
            // calling the PrintIndexAndValues() method 
            PrintIndexAndValues(myArr);
        }
        catch (ArgumentNullException e) {
  
            Console.Write("Exception Thrown :");
            Console.Write("{0}", e.GetType(), e.Message);
        }
        catch (IndexOutOfRangeException e) {
            Console.Write("Exception Thrown :");
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }
  
    // Defining the method PrintIndexAndValues 
    public static void PrintIndexAndValues(int[] myArr)
    {
        for (int i = 0; i < myArr.Length; i++) {
            Console.WriteLine("{0}", myArr[i]);
        }
    }
}
输出:
Array Before Operation:
10
20
30
40

Taking index out of bound:
Exception Thrown :System.IndexOutOfRangeException

参考:

  • https://docs.microsoft.com/zh-cn/dotnet/api/system.array.clear?view=netframework-4.7.2