Array.Clear(Array, Int32, Int32) Array.Clear(Array, Int32, Int32) Array.Clear(Array, Int32, Int32) Method

定義

配列内にある要素の範囲を、各要素の型の既定値に設定します。Sets a range of elements in an array to the default value of each element type.

public:
 static void Clear(Array ^ array, int index, int length);
public static void Clear (Array array, int index, int length);
static member Clear : Array * int * int -> unit

パラメーター

array
Array Array Array

要素を削除する必要がある配列。The array whose elements need to be cleared.

index
Int32 Int32 Int32

削除する要素の範囲の開始インデックス。The starting index of the range of elements to clear.

length
Int32 Int32 Int32

削除する要素の数。The number of elements to clear.

例外

arraynull です。array is null.

index は、array の下限を下回っています。index is less than the lower bound of array.

- または --or- length が 0 未満です。length is less than zero.

- または --or- indexlength の合計が array のサイズを超えています。The sum of index and length is greater than the size of array.

次の例では、Clearメソッドを 1 次元、2 次元、および 3 次元の配列内の整数値をリセットします。The following example uses the Clear method to reset integer values in a one-dimensional, two-dimensional, and three-dimensional array.

using System;

class Example
{
    public static void Main()
    {
        Console.WriteLine("One dimension (Rank=1):");
        int[] numbers1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };

        for (int i = 0; i < 9; i++)
        {
            Console.Write("{0} ", numbers1[i]);
        }
        Console.WriteLine();
        Console.WriteLine();

        Console.WriteLine("Array.Clear(numbers1, 2, 5)");
        Array.Clear(numbers1, 2, 5);

        for (int i = 0; i < 9; i++)
        {
            Console.Write("{0} ", numbers1[i]);
        }
        Console.WriteLine();
        Console.WriteLine();

        Console.WriteLine("Two dimensions (Rank=2):");
        int[,] numbers2 = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };

        for (int i = 0; i < 3; i++)
        {
            for (int j = 0; j < 3; j++)
            {
                Console.Write("{0} ", numbers2[i, j]);
            }
            Console.WriteLine();
        }

        Console.WriteLine();
        Console.WriteLine("Array.Clear(numbers2, 2, 5)");
        Array.Clear(numbers2, 2, 5);

        for (int i = 0; i < 3; i++)
        {
            for (int j = 0; j < 3; j++)
            {
                Console.Write("{0} ", numbers2[i, j]);
            }
            Console.WriteLine();
        }

        Console.WriteLine("Three dimensions (Rank=3):");
        int[, ,] numbers3 = {{{1, 2}, {3, 4}},
                             {{5, 6}, {7, 8}},
                             {{9, 10}, {11, 12}}};

        for (int i = 0; i < 2; i++)
        {
            for (int j = 0; j < 2; j++)
            {
                for (int k = 0; k < 2; k++)
                {
                    Console.Write("{0} ", numbers3[i, j, k]);
                }
                Console.WriteLine();
            }
            Console.WriteLine();
        }

        Console.WriteLine("Array.Clear(numbers3, 2, 5)");
        Array.Clear(numbers3, 2, 5);

        for (int i = 0; i < 2; i++)
        {
            for (int j = 0; j < 2; j++)
            {
                for (int k = 0; k < 2; k++)
                {
                    Console.Write("{0} ", numbers3[i, j, k]);
                }
                Console.WriteLine();
            }
            Console.WriteLine();
        }
    }
}
/*  This code example produces the following output:
 * 
 * One dimension (Rank=1):
 * 1 2 3 4 5 6 7 8 9
 * 
 * Array.Clear(numbers1, 2, 5)
 * 1 2 0 0 0 0 0 8 9
 * 
 * Two dimensions (Rank=2):
 * 1 2 3
 * 4 5 6
 * 7 8 9
 * 
 * Array.Clear(numbers2, 2, 5)
 * 1 2 0
 * 0 0 0
 * 0 8 9
 * 
 * Three dimensions (Rank=3):
 * 1 2
 * 3 4
 * 
 * 5 6
 * 7 8
 * 
 * Array.Clear(numbers3, 2, 5)
 * 1 2
 * 0 0
 * 
 * 0 0
 * 0 8
 */
Module Example
    Sub Main()
        Console.WriteLine(vbLf & "One dimension (Rank=1):")
        Dim numbers1() As Integer = {1, 2, 3, 4, 5, 6, 7, 8, 9}

        For i As Integer = 0 To 8
            Console.Write("{0} ", numbers1(i))
        Next 
        Console.WriteLine()

        Console.WriteLine(vbLf & "Array.Clear(numbers1, 2, 5)")
        Array.Clear(numbers1, 2, 5)

        For i As Integer = 0 To 8
            Console.Write("{0} ", numbers1(i))
        Next 
        Console.WriteLine()


        Console.WriteLine(vbLf & "Two dimensions (Rank=2):")
        Dim numbers2(,) As Integer = {{ 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 }}

        For i As Integer = 0 To 2
            For j As Integer = 0 To 2
                Console.Write("{0} ", numbers2(i, j))
            Next 
            Console.WriteLine()
        Next 

        Console.WriteLine(vbLf & "Array.Clear(numbers2, 2, 5)")
        Array.Clear(numbers2, 2, 5)

        For i As Integer = 0 To 2
            For j As Integer = 0 To 2
                Console.Write("{0} ", numbers2(i, j))
            Next 
            Console.WriteLine()
        Next 


        Console.WriteLine(vbLf & "Three dimensions (Rank=3):")
        Dim numbers3(,,) As Integer = {{{ 1, 2 }, { 3, 4 }}, _
                                       {{ 5, 6 }, { 7, 8 }}, _
                                       {{ 9, 10 }, { 11, 12 }}}

        For i As Integer = 0 To 1
            For j As Integer = 0 To 1
                For k As Integer = 0 To 1
                    Console.Write("{0} ", numbers3(i, j, k))
                Next 
                Console.WriteLine()
            Next 
            Console.WriteLine()
        Next 
        Console.WriteLine()
        
        Console.WriteLine("Array.Clear(numbers3, 2, 5)")
        Array.Clear(numbers3, 2, 5)

        For i As Integer = 0 To 1
            For j As Integer = 0 To 1
                For k As Integer = 0 To 1
                    Console.Write("{0} ", numbers3(i, j, k))
                Next 
                Console.WriteLine()
            Next 
            Console.WriteLine()
        Next 
    End Sub
End Module
' The example displays the following output:
'       One dimension (Rank=1):
'       1 2 3 4 5 6 7 8 9
'       
'       Array.Clear(numbers1, 2, 5)
'       1 2 0 0 0 0 0 8 9
'       
'       Two dimensions (Rank=2):
'       1 2 3
'       4 5 6
'       7 8 9
'       
'       Array.Clear(numbers2, 2, 5)
'       1 2 0
'       0 0 0
'       0 8 9
'       
'       Three dimensions (Rank=3):
'       1 2
'       3 4
'
'       5 6
'       7 8
'       
'       Array.Clear(numbers3, 2, 5)
'       1 2
'       0 0
'       
'       0 0
'       0 8

次の例では、定義、TimeZoneTimeを含む構造をTimeZoneInfoフィールドとDateTimeOffsetフィールド。The following example defines a TimeZoneTime structure that includes a TimeZoneInfo field and a DateTimeOffset field. 呼び出して、Clearメソッドの 2 つの要素の配列内の 1 つの要素を消去するTimeZoneTime値。It then calls the Clear method to clear one element in a two-element array of TimeZoneTime values. メソッドの既定値に消去された要素の値を設定する、TimeZoneInfoとなるオブジェクトnullとの既定値、DateTimeOffsetとなるオブジェクトDateTimeOffset.MinValueします。The method sets the value of the cleared element to the default value of a TimeZoneInfo object, which is null, and the default value of a DateTimeOffset object, which is DateTimeOffset.MinValue.

using System;

public struct TimeZoneTime
{
   private DateTimeOffset dt;
   private TimeZoneInfo tz;
   
   public TimeZoneTime(DateTimeOffset dateTime, TimeZoneInfo timeZone)
   {
      dt = dateTime;
      tz = timeZone;
   }

   public DateTimeOffset DateTime 
   { get { return dt; } }
   
   public TimeZoneInfo TimeZone 
   { get { return tz; } }
}

public class Example
{
   public static void Main()
   {
      // Declare an array with two elements.
      TimeZoneTime[] timeZoneTimes = { new TimeZoneTime(DateTime.Now, TimeZoneInfo.Local),
                                       new TimeZoneTime(DateTime.Now, TimeZoneInfo.Utc) };   
      foreach (var timeZoneTime in timeZoneTimes)
         Console.WriteLine("{0}: {1:G}", 
                           timeZoneTime.TimeZone == null ? "<null>" : timeZoneTime.TimeZone.ToString(), 
                           timeZoneTime.DateTime);
      Console.WriteLine();
      
      Array.Clear(timeZoneTimes, 1, 1);
      foreach (var timeZoneTime in timeZoneTimes)
         Console.WriteLine("{0}: {1:G}", 
                           timeZoneTime.TimeZone == null ? "<null>" : timeZoneTime.TimeZone.ToString(), 
                           timeZoneTime.DateTime);
   }
}
// The example displays the following output:
//       (UTC-08:00) Pacific Time (US & Canada): 1/20/2014 12:11:00 PM
//       UTC: 1/20/2014 12:11:00 PM
//       
//       (UTC-08:00) Pacific Time (US & Canada): 1/20/2014 12:11:00 PM
//       <null>: 1/1/0001 12:00:00 AM
Public Structure TimeZoneTime
   Private dt As DateTimeOffset
   Private tz As TimeZoneInfo
   
   Public Sub New(dateTime As DateTimeOffset, timeZone As TimeZoneInfo)
      dt = dateTime
      tz = timeZone
   End Sub

   Public ReadOnly Property DateTime As DateTimeOffset
      Get
         Return dt
      End Get
   End Property
   
   Public ReadOnly Property TimeZone As TimeZoneInfo
      Get
         Return tz
      End Get
   End Property 
End Structure

Module Example
   Public Sub Main()
      ' Declare an array with two elements.
      Dim timeZoneTimes() As TimeZoneTime = { New TimeZoneTime(Date.Now, TimeZoneInfo.Local),
                                              New TimeZoneTime(Date.Now, TimeZoneInfo.Utc) }   
      For Each timeZoneTime In timeZoneTimes
         Console.WriteLine("{0}: {1:G}", 
                           If(timeZoneTime.TimeZone Is Nothing, "<null>", timeZoneTime.TimeZone), 
                           timeZoneTime.DateTime)
      Next
      Console.WriteLine()
      
      Array.Clear(timeZoneTimes, 1, 1)
      For Each timeZoneTime In timeZoneTimes
         Console.WriteLine("{0}: {1:G}", 
                           If(timeZoneTime.TimeZone Is Nothing, "<null>", timeZoneTime.TimeZone), 
                           timeZoneTime.DateTime)
      Next
   End Sub
End Module
' The example displays output like the following:
'       (UTC-08:00) Pacific Time (US & Canada): 1/20/2014 12:11:00 PM
'       UTC: 1/20/2014 12:11:00 PM
'       
'       (UTC-08:00) Pacific Time (US & Canada): 1/20/2014 12:11:00 PM
'       <null>: 1/1/0001 12:00:00 AM

注釈

このメソッドは、配列内の各要素を要素型の既定値にリセットします。This method resets each element in an array to the element type's default value. 参照型の要素を設定 (を含むString要素) をnull、および値型の要素を次の表に示すように既定値に設定します。It sets elements of reference types (including String elements) to null, and sets elements of value types to the default values shown in the following table.

Type Value
Boolean false
すべての整数と浮動小数点数値型All integral and floating point numeric types 0 (ゼロ)0 (zero)
DateTime DateTime.MinValue
他の値型Other value types 型のフィールドの既定値Default value of the type's fields

範囲では、多次元配列で要素のラップ行から行をクリアします。The range of cleared elements wrap from row to row in a multi-dimensional array.

このメソッドはのみ、要素の値をクリアします要素自体は削除されません。This method only clears the values of the elements; it does not delete the elements themselves. 配列が固定サイズです。そのため、要素を追加または削除することはできません。An array has a fixed size; therefore, elements cannot be added or removed.

このメソッドは O (n) 操作、nlengthします。This method is an O(n) operation, where n is length.

適用対象