Array.Clear Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Überlädt
| Name | Beschreibung |
|---|---|
| Clear(Array) |
Löscht den Inhalt eines Arrays. |
| Clear(Array, Int32, Int32) |
Legt einen Bereich von Elementen in einem Array auf den Standardwert jedes Elementtyps fest. |
Clear(Array)
- Quelle:
- Array.cs
- Quelle:
- Array.cs
- Quelle:
- Array.CoreCLR.cs
- Quelle:
- Array.CoreCLR.cs
- Quelle:
- Array.CoreCLR.cs
Löscht den Inhalt eines Arrays.
public:
static void Clear(Array ^ array);
public static void Clear(Array array);
static member Clear : Array -> unit
Public Shared Sub Clear (array As Array)
Parameter
- array
- Array
Das zu löschende Array.
Ausnahmen
array ist null.
Gilt für:
Clear(Array, Int32, Int32)
- Quelle:
- Array.cs
- Quelle:
- Array.cs
- Quelle:
- Array.CoreCLR.cs
- Quelle:
- Array.CoreCLR.cs
- Quelle:
- Array.CoreCLR.cs
Legt einen Bereich von Elementen in einem Array auf den Standardwert jedes Elementtyps fest.
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)
Parameter
- array
- Array
Das Array, dessen Elemente gelöscht werden müssen.
- index
- Int32
Der Anfangsindex des zu löschenden Elementbereichs.
- length
- Int32
Die Anzahl der zu löschenden Elemente.
Ausnahmen
array ist null.
index ist kleiner als die untere Grenze von array.
-oder-
length ist kleiner als 0 (null).
-oder-
Die Summe von index und length ist größer als die Größe von array.
Beispiele
Im folgenden Beispiel wird die Clear Methode verwendet, um ganzzahlige Werte in einem eindimensionalen, zweidimensionalen und dreidimensionalen Array zurückzusetzen.
using System;
class Example
{
public static void RunIt()
{
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("\nThree dimensions (Rank=3):");
int[,,] numbers3 = {{{1, 2}, {3, 4}},
{{5, 6}, {7, 8}},
{{9, 10}, {11, 12}}};
for (int i = 0; i < 3; 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 < 3; 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
*
* 9 10
* 11 12
*
* Array.Clear(numbers3, 2, 5)
* 1 2
* 0 0
*
* 0 0
* 0 8
*
* 9 10
* 11 12
*/
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
numbers3[2, 0, 0] <- 9
numbers3[2, 1, 0] <- 10
numbers3[2, 0, 1] <- 11
numbers3[2, 1, 1] <- 12
for i = 0 to 2 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
//
// 9 10
// 11 12
//
// Array.Clear(numbers3, 2, 5)
// 1 2
// 0 0
//
// 0 0
// 0 8
//
// 9 10
// 11 12
//
Module Example
Sub RunIt()
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 2
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("Array.Clear(numbers3, 2, 5)")
Array.Clear(numbers3, 2, 5)
For i As Integer = 0 To 2
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
'
' 9 10
' 11 12
'
' Array.Clear(numbers3, 2, 5)
' 1 2
' 0 0
'
' 0 0
' 0 8
'
' 9 10
' 11 12
Im folgenden Beispiel wird eine TimeZoneTime Struktur definiert, die ein TimeZoneInfo Feld und ein DateTimeOffset Feld enthält. Anschließend wird die Clear Methode aufgerufen, um ein Element in einem Zwei-Element-Array mit TimeZoneTime Werten zu löschen. Die Methode legt den Wert des gelöschten Elements auf den Standardwert eines TimeZoneInfo Objekts fest, das ist null, und den Standardwert eines DateTimeOffset Objekts, das lautet DateTimeOffset.MinValue.
using System;
public struct TimeZoneTime
{
public TimeZoneTime(DateTimeOffset dateTime, TimeZoneInfo timeZone)
{
DateTime = dateTime;
TimeZone = timeZone;
}
public DateTimeOffset DateTime { get; }
public TimeZoneInfo TimeZone { get; }
}
public class Example1
{
public static void RunIt()
{
// Declare an array with two elements.
TimeZoneTime[] timeZoneTimes = {
new(DateTime.Now, TimeZoneInfo.Local),
new(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 Example1
Public Sub RunIt()
' 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
Hinweise
Diese Methode setzt jedes Element in einem Array auf den Standardwert des Elementtyps zurück. Es legt Elemente von Bezugstypen (einschließlich String Elementen) auf nullund legt Elemente von Werttypen auf die Standardwerte fest, die in der folgenden Tabelle gezeigt werden.
| Typ | Wert |
|---|---|
| Boolean | false |
| Alle integralen und gleitkommafreien Numerischen Typen | 0 (Null) |
| DateTime | DateTime.MinValue |
| Andere Werttypen | Standardwert der Felder des Typs |
Der Bereich der gelöschten Elemente wird von Zeile zu Zeile in ein mehrdimensionales Array umbrochen.
Diese Methode löscht nur die Werte der Elemente; sie löscht die Elemente selbst nicht. Ein Array hat eine feste Größe; Daher können Keine Elemente hinzugefügt oder entfernt werden.
Diese Methode ist ein $O(n)$-Vorgang, wobei $n$ ist length.