Auf Englisch lesen

Freigeben über


Array.CreateInstance Methode

Definition

Initialisiert eine neue Instanz der Array-Klasse.

Überlädt

CreateInstance(Type, Int32)

Erstellt ein eindimensionales Array der angegebenen Länge und vom angegebenen Type mit nullbasierter Indizierung.

CreateInstance(Type, Int32[])

Erstellt ein mehrdimensionales Array vom angegebenen Type mit der für jede Dimension angegebenen Länge und mit nullbasierter Indizierung. Die Längen der Dimension werden in einem Array von 32-Bit-Ganzzahlen angegeben.

CreateInstance(Type, Int64[])

Erstellt ein mehrdimensionales Array vom angegebenen Type mit der für jede Dimension angegebenen Länge und mit nullbasierter Indizierung. Die Längen der Dimension werden in einem Array von 64-Bit-Ganzzahlen angegeben.

CreateInstance(Type, Int32, Int32)

Erstellt ein zweidimensionales Array vom angegebenen Type mit der für jede Dimension angegebenen Länge und mit nullbasierter Indizierung.

CreateInstance(Type, Int32[], Int32[])

Erstellt ein mehrdimensionales Array vom angegebenen Type mit der für jede Dimension angegebenen Länge und Untergrenze.

CreateInstance(Type, Int32, Int32, Int32)

Erstellt ein dreidimensionales Array vom angegebenen Type mit der für jede Dimension angegebenen Länge und mit nullbasierter Indizierung.

CreateInstance(Type, Int32)

Quelle:
Array.cs
Quelle:
Array.cs
Quelle:
Array.cs

Erstellt ein eindimensionales Array der angegebenen Länge und vom angegebenen Type mit nullbasierter Indizierung.

public static Array CreateInstance (Type elementType, int length);

Parameter

elementType
Type

Der Type des zu erstellenden Array.

length
Int32

Die Größe des zu erstellenden Array.

Gibt zurück

Ein neues eindimensionales Array der angegebenen Länge und vom angegebenen Type mit nullbasierter Indizierung.

Ausnahmen

elementType ist null.

elementType ist kein gültiger Type.

elementType wird nicht unterstützt. Beispielsweise wird Void nicht unterstützt.

- oder -

elementType ist ein offener generischer Typ.

length ist kleiner als Null.

Beispiele

Im folgenden Codebeispiel wird gezeigt, wie ein eindimensionales Arrayerstellt und initialisiert wird.

using System;
public class SamplesArray  {

   public static void Main()  {

      // Creates and initializes a one-dimensional Array of type int.
      Array my1DArray=Array.CreateInstance( typeof(int), 5 );
      for ( int i = my1DArray.GetLowerBound(0); i <= my1DArray.GetUpperBound(0); i++ )
         my1DArray.SetValue( i+1, i );

      // Displays the values of the Array.
      Console.WriteLine( "The one-dimensional Array contains the following values:" );
      PrintValues( my1DArray );
   }

   public static void PrintValues( Array myArr )  {
      System.Collections.IEnumerator myEnumerator = myArr.GetEnumerator();
      int i = 0;
      int cols = myArr.GetLength( myArr.Rank - 1 );
      while ( myEnumerator.MoveNext() )  {
         if ( i < cols )  {
            i++;
         } else  {
            Console.WriteLine();
            i = 1;
         }
         Console.Write( "\t{0}", myEnumerator.Current );
      }
      Console.WriteLine();
   }
}
/*
This code produces the following output.

The one-dimensional Array contains the following values:
    1    2    3    4    5
*/

Hinweise

Im Gegensatz zu den meisten Klassen Array stellt die CreateInstance -Methode anstelle von öffentlichen Konstruktoren bereit, um spät gebundenen Zugriff zu ermöglichen.

Verweistypelemente werden in nullinitialisiert. Werttypelemente werden mit 0 initialisiert.

Diese Methode ist ein O()n-Vorgang, wobei n ist length.

In F# wird stattdessen die Funktion Array.zeroCreate verwendet.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

CreateInstance(Type, Int32[])

Quelle:
Array.cs
Quelle:
Array.cs
Quelle:
Array.cs

Erstellt ein mehrdimensionales Array vom angegebenen Type mit der für jede Dimension angegebenen Länge und mit nullbasierter Indizierung. Die Längen der Dimension werden in einem Array von 32-Bit-Ganzzahlen angegeben.

public static Array CreateInstance (Type elementType, params int[] lengths);

Parameter

elementType
Type

Der Type des zu erstellenden Array.

lengths
Int32[]

Ein Array von 32-Bit-Ganzzahlen, das die Größe der einzelnen Dimensionen des zu erstellenden Array darstellt.

Gibt zurück

Ein neues mehrdimensionales Array vom angegebenen Type mit der für jede Dimension angegebenen Länge und mit nullbasierter Indizierung.

Ausnahmen

elementType ist null.

- oder -

lengths ist null.

elementType ist kein gültiger Type.

- oder -

Das lengths-Array enthält kein Element.

elementType wird nicht unterstützt. Beispielsweise wird Void nicht unterstützt.

- oder -

elementType ist ein offener generischer Typ.

Irgendein Wert in lengths ist kleiner als 0 (null).

Beispiele

Im folgenden Codebeispiel wird gezeigt, wie sie eine mehrdimensionale Arrayerstellen und initialisieren.

using System;
public class SamplesArray3  {

   public static void Main()  {

      // Creates and initializes a multidimensional Array of type string.
      int[] myLengthsArray = new int[4] { 2, 3, 4, 5 };
      Array my4DArray=Array.CreateInstance( typeof(string), myLengthsArray );
      for ( int i = my4DArray.GetLowerBound(0); i <= my4DArray.GetUpperBound(0); i++ )
         for ( int j = my4DArray.GetLowerBound(1); j <= my4DArray.GetUpperBound(1); j++ )
            for ( int k = my4DArray.GetLowerBound(2); k <= my4DArray.GetUpperBound(2); k++ )
               for ( int l = my4DArray.GetLowerBound(3); l <= my4DArray.GetUpperBound(3); l++ )  {
                  int[] myIndicesArray = new int[4] { i, j, k, l };
                  my4DArray.SetValue( Convert.ToString(i) + j + k + l, myIndicesArray );
               }

      // Displays the values of the Array.
      Console.WriteLine( "The four-dimensional Array contains the following values:" );
      PrintValues( my4DArray );
   }

   public static void PrintValues( Array myArr )  {
      System.Collections.IEnumerator myEnumerator = myArr.GetEnumerator();
      int i = 0;
      int cols = myArr.GetLength( myArr.Rank - 1 );
      while ( myEnumerator.MoveNext() )  {
         if ( i < cols )  {
            i++;
         } else  {
            Console.WriteLine();
            i = 1;
         }
         Console.Write( "\t{0}", myEnumerator.Current );
      }
      Console.WriteLine();
   }
}
/*
This code produces the following output.

The four-dimensional Array contains the following values:
    0000    0001    0002    0003    0004
    0010    0011    0012    0013    0014
    0020    0021    0022    0023    0024
    0030    0031    0032    0033    0034
    0100    0101    0102    0103    0104
    0110    0111    0112    0113    0114
    0120    0121    0122    0123    0124
    0130    0131    0132    0133    0134
    0200    0201    0202    0203    0204
    0210    0211    0212    0213    0214
    0220    0221    0222    0223    0224
    0230    0231    0232    0233    0234
    1000    1001    1002    1003    1004
    1010    1011    1012    1013    1014
    1020    1021    1022    1023    1024
    1030    1031    1032    1033    1034
    1100    1101    1102    1103    1104
    1110    1111    1112    1113    1114
    1120    1121    1122    1123    1124
    1130    1131    1132    1133    1134
    1200    1201    1202    1203    1204
    1210    1211    1212    1213    1214
    1220    1221    1222    1223    1224
    1230    1231    1232    1233    1234
*/

Hinweise

Im Gegensatz zu den meisten Klassen Array stellt die CreateInstance -Methode anstelle von öffentlichen Konstruktoren bereit, um spät gebundenen Zugriff zu ermöglichen.

Die Anzahl der Elemente im lengths Array muss der Anzahl von Dimensionen im neuen Arrayentsprechen. Jedes Element des lengths Arrays muss die Länge der entsprechenden Dimension im neuen Arrayangeben.

Verweistypelemente werden in nullinitialisiert. Werttypelemente werden mit 0 initialisiert.

Diese Methode ist ein O(n)-Vorgang, wobei n das Produkt aller Werte in lengthsist.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

CreateInstance(Type, Int64[])

Quelle:
Array.cs
Quelle:
Array.cs
Quelle:
Array.cs

Erstellt ein mehrdimensionales Array vom angegebenen Type mit der für jede Dimension angegebenen Länge und mit nullbasierter Indizierung. Die Längen der Dimension werden in einem Array von 64-Bit-Ganzzahlen angegeben.

public static Array CreateInstance (Type elementType, params long[] lengths);

Parameter

elementType
Type

Der Type des zu erstellenden Array.

lengths
Int64[]

Ein Array von 64-Bit-Ganzzahlen, das die Größe der einzelnen Dimensionen des zu erstellenden Array darstellt. Jede ganze Zahl im Array muss zwischen null und Int32.MaxValue liegen, einschließlich.

Gibt zurück

Ein neues mehrdimensionales Array vom angegebenen Type mit der für jede Dimension angegebenen Länge und mit nullbasierter Indizierung.

Ausnahmen

elementType ist null.

- oder -

lengths ist null.

elementType ist kein gültiger Type.

- oder -

Das lengths-Array enthält kein Element.

elementType wird nicht unterstützt. Beispielsweise wird Void nicht unterstützt.

- oder -

elementType ist ein offener generischer Typ.

Jeder Wert in lengths ist kleiner als 0 oder größer als Int32.MaxValue.

Beispiele

Im folgenden Codebeispiel wird gezeigt, wie sie eine mehrdimensionale Arrayerstellen und initialisieren.

using System;
public class SamplesArray3  {

   public static void Main()  {

      // Creates and initializes a multidimensional Array of type string.
      int[] myLengthsArray = new int[4] { 2, 3, 4, 5 };
      Array my4DArray=Array.CreateInstance( typeof(string), myLengthsArray );
      for ( int i = my4DArray.GetLowerBound(0); i <= my4DArray.GetUpperBound(0); i++ )
         for ( int j = my4DArray.GetLowerBound(1); j <= my4DArray.GetUpperBound(1); j++ )
            for ( int k = my4DArray.GetLowerBound(2); k <= my4DArray.GetUpperBound(2); k++ )
               for ( int l = my4DArray.GetLowerBound(3); l <= my4DArray.GetUpperBound(3); l++ )  {
                  int[] myIndicesArray = new int[4] { i, j, k, l };
                  my4DArray.SetValue( Convert.ToString(i) + j + k + l, myIndicesArray );
               }

      // Displays the values of the Array.
      Console.WriteLine( "The four-dimensional Array contains the following values:" );
      PrintValues( my4DArray );
   }

   public static void PrintValues( Array myArr )  {
      System.Collections.IEnumerator myEnumerator = myArr.GetEnumerator();
      int i = 0;
      int cols = myArr.GetLength( myArr.Rank - 1 );
      while ( myEnumerator.MoveNext() )  {
         if ( i < cols )  {
            i++;
         } else  {
            Console.WriteLine();
            i = 1;
         }
         Console.Write( "\t{0}", myEnumerator.Current );
      }
      Console.WriteLine();
   }
}
/*
This code produces the following output.

The four-dimensional Array contains the following values:
    0000    0001    0002    0003    0004
    0010    0011    0012    0013    0014
    0020    0021    0022    0023    0024
    0030    0031    0032    0033    0034
    0100    0101    0102    0103    0104
    0110    0111    0112    0113    0114
    0120    0121    0122    0123    0124
    0130    0131    0132    0133    0134
    0200    0201    0202    0203    0204
    0210    0211    0212    0213    0214
    0220    0221    0222    0223    0224
    0230    0231    0232    0233    0234
    1000    1001    1002    1003    1004
    1010    1011    1012    1013    1014
    1020    1021    1022    1023    1024
    1030    1031    1032    1033    1034
    1100    1101    1102    1103    1104
    1110    1111    1112    1113    1114
    1120    1121    1122    1123    1124
    1130    1131    1132    1133    1134
    1200    1201    1202    1203    1204
    1210    1211    1212    1213    1214
    1220    1221    1222    1223    1224
    1230    1231    1232    1233    1234
*/

Hinweise

Im Gegensatz zu den meisten Klassen Array stellt die CreateInstance -Methode anstelle von öffentlichen Konstruktoren bereit, um spät gebundenen Zugriff zu ermöglichen.

Die Anzahl der Elemente im lengths Array muss der Anzahl von Dimensionen im neuen Arrayentsprechen. Jedes Element des lengths Arrays muss die Länge der entsprechenden Dimension im neuen Arrayangeben.

Verweistypelemente werden in nullinitialisiert. Werttypelemente werden mit 0 initialisiert.

Diese Methode ist ein O(n)-Vorgang, wobei n das Produkt aller Werte in lengthsist.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

CreateInstance(Type, Int32, Int32)

Quelle:
Array.cs
Quelle:
Array.cs
Quelle:
Array.cs

Erstellt ein zweidimensionales Array vom angegebenen Type mit der für jede Dimension angegebenen Länge und mit nullbasierter Indizierung.

public static Array CreateInstance (Type elementType, int length1, int length2);

Parameter

elementType
Type

Der Type des zu erstellenden Array.

length1
Int32

Die Größe der ersten Dimension des zu erstellenden Array.

length2
Int32

Die Größe der zweiten Dimension des zu erstellenden Array.

Gibt zurück

Ein neues zweidimensionales Array vom angegebenen Type mit der für jede Dimension angegebenen Länge und mit nullbasierter Indizierung.

Ausnahmen

elementType ist null.

elementType ist kein gültiger Type.

elementType wird nicht unterstützt. Beispielsweise wird Void nicht unterstützt.

- oder -

elementType ist ein offener generischer Typ.

length1 ist kleiner als Null.

- oder -

length2 ist kleiner als Null.

Beispiele

Im folgenden Codebeispiel wird gezeigt, wie ein zweidimensionales Arrayerstellt und initialisiert wird.

using System;
public class SamplesArray1  {

   public static void Main()  {

      // Creates and initializes a two-dimensional Array of type string.
      Array my2DArray=Array.CreateInstance( typeof(string), 2, 3 );
      for ( int i = my2DArray.GetLowerBound(0); i <= my2DArray.GetUpperBound(0); i++ )
         for ( int j = my2DArray.GetLowerBound(1); j <= my2DArray.GetUpperBound(1); j++ )
            my2DArray.SetValue( "abc" + i + j, i, j );

      // Displays the values of the Array.
      Console.WriteLine( "The two-dimensional Array contains the following values:" );
      PrintValues( my2DArray );
   }

   public static void PrintValues( Array myArr )  {
      System.Collections.IEnumerator myEnumerator = myArr.GetEnumerator();
      int i = 0;
      int cols = myArr.GetLength( myArr.Rank - 1 );
      while ( myEnumerator.MoveNext() )  {
         if ( i < cols )  {
            i++;
         } else  {
            Console.WriteLine();
            i = 1;
         }
         Console.Write( "\t{0}", myEnumerator.Current );
      }
      Console.WriteLine();
   }
}
/*
This code produces the following output.

The two-dimensional Array contains the following values:
    abc00    abc01    abc02
    abc10    abc11    abc12
*/

Hinweise

Im Gegensatz zu den meisten Klassen Array stellt die CreateInstance -Methode anstelle von öffentlichen Konstruktoren bereit, um spät gebundenen Zugriff zu ermöglichen.

Verweistypelemente werden in nullinitialisiert. Werttypelemente werden mit 0 initialisiert.

Diese Methode ist ein O(n)-Vorgang, wobei n das Produkt von length1 und length2ist.

In F# kann stattdessen die Funktion Array2D.zeroCreate verwendet werden.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

CreateInstance(Type, Int32[], Int32[])

Quelle:
Array.cs
Quelle:
Array.cs
Quelle:
Array.cs

Erstellt ein mehrdimensionales Array vom angegebenen Type mit der für jede Dimension angegebenen Länge und Untergrenze.

public static Array CreateInstance (Type elementType, int[] lengths, int[] lowerBounds);

Parameter

elementType
Type

Der Type des zu erstellenden Array.

lengths
Int32[]

Ein eindimensionales Array mit den Größen aller Dimensionen des zu erstellenden Array.

lowerBounds
Int32[]

Ein eindimensionales Array mit der unteren Grenze (Startindex) für jede Dimension des zu erstellenden Array.

Gibt zurück

Ein neues mehrdimensionales Array vom angegebenen Type mit der für jede Dimension angegebenen Länge und Untergrenze.

Ausnahmen

elementType ist null.

- oder -

lengths ist null.

- oder -

lowerBounds ist null.

elementType ist kein gültiger Type.

- oder -

Das lengths-Array enthält kein Element.

- oder -

Das lengths- und das lowerBounds-Array enthalten nicht dieselbe Anzahl von Elementen.

elementType wird nicht unterstützt. Beispielsweise wird Void nicht unterstützt.

- oder -

elementType ist ein offener generischer Typ.

Irgendein Wert in lengths ist kleiner als 0 (null).

- oder -

Jeder Wert in lowerBounds ist sehr groß, sodass die Summe der Untergrenze und Länge einer Dimension größer als Int32.MaxValue ist.

Beispiele

Im folgenden Codebeispiel wird gezeigt, wie Sie eine mehrdimensionale Array Version mit angegebenen Untergrenzen erstellen und initialisieren.

using System;
public class SamplesArray4  {

   public static void Main()  {

      // Creates and initializes a multidimensional Array of type string.
      int[] myLengthsArray = new int[2] { 3, 5 };
      int[] myBoundsArray = new int[2] { 2, 3 };
      Array myArray=Array.CreateInstance( typeof(string), myLengthsArray, myBoundsArray );
      for ( int i = myArray.GetLowerBound(0); i <= myArray.GetUpperBound(0); i++ )
         for ( int j = myArray.GetLowerBound(1); j <= myArray.GetUpperBound(1); j++ )  {
            int[] myIndicesArray = new int[2] { i, j };
            myArray.SetValue( Convert.ToString(i) + j, myIndicesArray );
         }

      // Displays the lower bounds and the upper bounds of each dimension.
      Console.WriteLine( "Bounds:\tLower\tUpper" );
      for ( int i = 0; i < myArray.Rank; i++ )
         Console.WriteLine( "{0}:\t{1}\t{2}", i, myArray.GetLowerBound(i), myArray.GetUpperBound(i) );

      // Displays the values of the Array.
      Console.WriteLine( "The Array contains the following values:" );
      PrintValues( myArray );
   }

   public static void PrintValues( Array myArr )  {
      System.Collections.IEnumerator myEnumerator = myArr.GetEnumerator();
      int i = 0;
      int cols = myArr.GetLength( myArr.Rank - 1 );
      while ( myEnumerator.MoveNext() )  {
         if ( i < cols )  {
            i++;
         } else  {
            Console.WriteLine();
            i = 1;
         }
         Console.Write( "\t{0}", myEnumerator.Current );
      }
      Console.WriteLine();
   }
}
/*
This code produces the following output.

Bounds:    Lower    Upper
0:    2    4
1:    3    7
The Array contains the following values:
    23    24    25    26    27
    33    34    35    36    37
    43    44    45    46    47
*/

Hinweise

Im Gegensatz zu den meisten Klassen Array stellt die CreateInstance -Methode anstelle von öffentlichen Konstruktoren bereit, um spät gebundenen Zugriff zu ermöglichen.

Die lengths und lowerBounds Arrays müssen die gleiche Anzahl von Elementen aufweisen. Die Anzahl der Elemente im lengths Array muss der Anzahl von Dimensionen im neuen Arrayentsprechen.

Jedes Element des lengths Arrays muss die Länge der entsprechenden Dimension im neuen Arrayangeben.

Jedes Element des lowerBounds Arrays muss die Untergrenze der entsprechenden Dimension im neuen Arrayangeben. Im Allgemeinen behandeln die .NET-Klassenbibliothek und viele Programmiersprachen keine Untergrenzen ungleich null.

Verweistypelemente werden in nullinitialisiert. Werttypelemente werden mit 0 initialisiert.

Diese Methode ist ein O(n)-Vorgang, wobei n das Produkt aller Werte in lengthsist.

Hinweis

Nicht alle Sprachen unterstützen Arrays mit Untergrenzen ungleich 0, und daher können Sie möglicherweise keine Instanzen von ungleich 0 basierend Array auf dem Arraytyp der Sprache umwandeln. Beispielsweise können Sie kein 1-dimensionales ganzzahliges Array mit der unteren Grenze 6 in den Typ von int[] C# umwandeln. Dies führt InvalidCastException zur Laufzeit mit der Meldung "Unable to cast object of type 'System.Int32[*]' to type 'System.Int32[]'" (Unable to cast object of 'System.Int32[*]'' (Unable to cast object of 'System.Int32[*]' to type 'System.Int32[]' (Unable to cast object of unable to type 'System.Int32[]' (Unable to cast object of 'System.Int32[*]''' (Unable to cast object of unable to cast object of 'System.Int32[*]'' (Unable to cast Sie können jedoch nullbasierte Arrays eines beliebigen Rangs, der mit CreateInstance(Type, Int32[], Int32[]) erstellt wurde, in das Array der Sprache umwandeln. Beispielsweise können Sie ein mit dieser Methode erstelltes 2-dimensionales nullbasiertes int[,] Ganzzahlarray in den C#-Typ umwandeln.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

CreateInstance(Type, Int32, Int32, Int32)

Quelle:
Array.cs
Quelle:
Array.cs
Quelle:
Array.cs

Erstellt ein dreidimensionales Array vom angegebenen Type mit der für jede Dimension angegebenen Länge und mit nullbasierter Indizierung.

public static Array CreateInstance (Type elementType, int length1, int length2, int length3);

Parameter

elementType
Type

Der Type des zu erstellenden Array.

length1
Int32

Die Größe der ersten Dimension des zu erstellenden Array.

length2
Int32

Die Größe der zweiten Dimension des zu erstellenden Array.

length3
Int32

Die Größe der dritten Dimension des zu erstellenden Array.

Gibt zurück

Ein neues dreidimensionales Array vom angegebenen Type mit der für jede Dimension angegebenen Länge und mit nullbasierter Indizierung.

Ausnahmen

elementType ist null.

elementType ist kein gültiger Type.

elementType wird nicht unterstützt. Beispielsweise wird Void nicht unterstützt.

- oder -

elementType ist ein offener generischer Typ.

length1 ist kleiner als Null.

- oder -

length2 ist kleiner als Null.

- oder -

length3 ist kleiner als Null.

Beispiele

Im folgenden Codebeispiel wird gezeigt, wie ein dreidimensionaler Arrayerstellt und initialisiert wird.

using System;
public class SamplesArray2  {

   public static void Main()  {

      // Creates and initializes a three-dimensional Array of type Object.
      Array my3DArray=Array.CreateInstance( typeof(Object), 2, 3, 4 );
      for ( int i = my3DArray.GetLowerBound(0); i <= my3DArray.GetUpperBound(0); i++ )
         for ( int j = my3DArray.GetLowerBound(1); j <= my3DArray.GetUpperBound(1); j++ )
            for ( int k = my3DArray.GetLowerBound(2); k <= my3DArray.GetUpperBound(2); k++ )
               my3DArray.SetValue( "abc" + i + j + k, i, j, k );

      // Displays the values of the Array.
      Console.WriteLine( "The three-dimensional Array contains the following values:" );
      PrintValues( my3DArray );
   }

   public static void PrintValues( Array myArr )  {
      System.Collections.IEnumerator myEnumerator = myArr.GetEnumerator();
      int i = 0;
      int cols = myArr.GetLength( myArr.Rank - 1 );
      while ( myEnumerator.MoveNext() )  {
         if ( i < cols )  {
            i++;
         } else  {
            Console.WriteLine();
            i = 1;
         }
         Console.Write( "\t{0}", myEnumerator.Current );
      }
      Console.WriteLine();
   }
}
/*
This code produces the following output.

The three-dimensional Array contains the following values:
    abc000    abc001    abc002    abc003
    abc010    abc011    abc012    abc013
    abc020    abc021    abc022    abc023
    abc100    abc101    abc102    abc103
    abc110    abc111    abc112    abc113
    abc120    abc121    abc122    abc123
*/

Hinweise

Im Gegensatz zu den meisten Klassen Array stellt die CreateInstance -Methode anstelle von öffentlichen Konstruktoren bereit, um spät gebundenen Zugriff zu ermöglichen.

Verweistypelemente werden in nullinitialisiert. Werttypelemente werden mit 0 initialisiert.

Diese Methode ist ein O(n)-Vorgang, wobei n das Produkt von length1, length2und length3ist .

In F# kann stattdessen die Funktion Array3D.zeroCreate verwendet werden.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1