Array.Clear Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Overloads
Clear(Array) |
Clears the contents of an array. |
Clear(Array, Int32, Int32) |
Sets a range of elements in an array to the default value of each element type. |
Clear(Array)
- Source:
- Array.CoreCLR.cs
- Source:
- Array.CoreCLR.cs
- Source:
- Array.CoreCLR.cs
Clears the contents of an array.
public:
static void Clear(Array ^ array);
public static void Clear (Array array);
static member Clear : Array -> unit
Public Shared Sub Clear (array As Array)
Parameters
- array
- Array
The array to clear.
Exceptions
array
is null
.
Applies to
Clear(Array, Int32, Int32)
- Source:
- Array.CoreCLR.cs
- Source:
- Array.CoreCLR.cs
- Source:
- Array.CoreCLR.cs
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
Public Shared Sub Clear (array As Array, index As Integer, length As Integer)
Parameters
- array
- Array
The array whose elements need to be cleared.
- index
- Int32
The starting index of the range of elements to clear.
- length
- Int32
The number of elements to clear.
Exceptions
array
is null
.
index
is less than the lower bound of array
.
-or-
length
is less than zero.
-or-
The sum of index
and length
is greater than the size of array
.
Examples
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
*/
open System
printfn "One dimension (Rank=1):"
let numbers1 = [| 1..9 |]
for i in numbers1 do
printf $"{i} "
printfn "\n\nArray.Clear(numbers1, 2, 5)"
Array.Clear(numbers1, 2, 5)
for i in numbers1 do
printf $"{i} "
printfn "\n\nTwo dimensions (Rank=2):"
let numbers2 = array2D [ [ 1; 2; 3 ]; [ 4; 5; 6 ]; [ 7; 8; 9 ] ]
for i = 0 to 2 do
for j = 0 to 2 do
printfn $"{numbers2[i, j]} "
printfn ""
printfn "\nArray.Clear(numbers2, 2, 5)"
Array.Clear(numbers2, 2, 5)
for i = 0 to 2 do
for j = 0 to 2 do
printfn $"{numbers2[i, j]} "
printfn ""
printfn "Three dimensions (Rank=3):"
let numbers3 = Array3D.zeroCreate 2 2 2
numbers3[0, 0, 0] <- 1
numbers3[0, 0, 1] <- 2
numbers3[0, 1, 0] <- 3
numbers3[0, 1, 1] <- 4
numbers3[1, 0, 0] <- 5
numbers3[1, 1, 0] <- 7
numbers3[1, 0, 1] <- 6
numbers3[1, 1, 1] <- 8
for i = 0 to 1 do
for j = 0 to 1 do
for k = 0 to 1 do
printf $"{numbers3[i, j, k]} "
printfn ""
printfn ""
printfn "Array.Clear(numbers3, 2, 5)"
Array.Clear(numbers3, 2, 5)
for i = 0 to 1 do
for j = 0 to 1 do
for k = 0 to 1 do
printf $"{numbers3[i, j, k]} "
printfn ""
printfn ""
// 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
The following example defines a TimeZoneTime
structure that includes a TimeZoneInfo field and a DateTimeOffset field. It then calls the Clear method to clear one element in a two-element array of TimeZoneTime
values. 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
open System
[<Struct>]
type TimeZoneTime =
{ DateTime: DateTimeOffset
TimeZone: TimeZoneInfo }
// Declare an array with two elements.
let timeZoneTimes =
[| { DateTime = DateTimeOffset.Now; TimeZone = TimeZoneInfo.Local }
{ DateTime = DateTimeOffset.Now; TimeZone = TimeZoneInfo.Local } |]
for timeZoneTime in timeZoneTimes do
let tz = if isNull timeZoneTime.TimeZone then "<null>" else string timeZoneTime.TimeZone
printfn $"{tz}: {timeZoneTime.DateTime:G}"
printfn ""
Array.Clear(timeZoneTimes, 1, 1)
for timeZoneTime in timeZoneTimes do
let tz = if isNull timeZoneTime.TimeZone then "<null>" else string timeZoneTime.TimeZone
printfn $"{tz}: {timeZoneTime.DateTime:G}"
// 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
Remarks
This method resets each element in an array to the element type's default value. 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 (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.
This method is an O(n
) operation, where n
is length
.