Freigeben über


ArraySegment<T> Konstruktoren

Definition

Initialisiert eine neue Instanz der ArraySegment<T> Struktur.

Überlädt

Name Beschreibung
ArraySegment<T>(T[])

Initialisiert eine neue Instanz der ArraySegment<T> Struktur, die alle Elemente im angegebenen Array abgrenzt.

ArraySegment<T>(T[], Int32, Int32)

Initialisiert eine neue Instanz der ArraySegment<T> Struktur, die den angegebenen Bereich der Elemente im angegebenen Array abgrenzt.

Beispiele

Im folgenden Codebeispiel wird eine ArraySegment<T> Struktur an eine Methode übergeben.

using System;

public class SamplesArray  {

   public static void Main()  {

      // Create and initialize a new string array.
      String[] myArr = { "The", "quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog" };

      // Display the initial contents of the array.
      Console.WriteLine( "The original array initially contains:" );
      PrintIndexAndValues( myArr );

      // Define an array segment that contains the entire array.
      ArraySegment<string> myArrSegAll = new ArraySegment<string>( myArr );

      // Display the contents of the ArraySegment.
      Console.WriteLine( "The first array segment (with all the array's elements) contains:" );
      PrintIndexAndValues( myArrSegAll );

      // Define an array segment that contains the middle five values of the array.
      ArraySegment<string> myArrSegMid = new ArraySegment<string>( myArr, 2, 5 );

      // Display the contents of the ArraySegment.
      Console.WriteLine( "The second array segment (with the middle five elements) contains:" );
      PrintIndexAndValues( myArrSegMid );

      // Modify the fourth element of the first array segment myArrSegAll.
      myArrSegAll.Array[3] = "LION";

      // Display the contents of the second array segment myArrSegMid.
      // Note that the value of its second element also changed.
      Console.WriteLine( "After the first array segment is modified, the second array segment now contains:" );
      PrintIndexAndValues( myArrSegMid );
   }

   public static void PrintIndexAndValues( ArraySegment<string> arrSeg )  {
      for ( int i = arrSeg.Offset; i < (arrSeg.Offset + arrSeg.Count); i++ )  {
         Console.WriteLine( "   [{0}] : {1}", i, arrSeg.Array[i] );
      }
      Console.WriteLine();
   }

   public static void PrintIndexAndValues( String[] myArr )  {
      for ( int i = 0; i < myArr.Length; i++ )  {
         Console.WriteLine( "   [{0}] : {1}", i, myArr[i] );
      }
      Console.WriteLine();
   }
}


/*
This code produces the following output.

The original array initially contains:
   [0] : The
   [1] : quick
   [2] : brown
   [3] : fox
   [4] : jumps
   [5] : over
   [6] : the
   [7] : lazy
   [8] : dog

The first array segment (with all the array's elements) contains:
   [0] : The
   [1] : quick
   [2] : brown
   [3] : fox
   [4] : jumps
   [5] : over
   [6] : the
   [7] : lazy
   [8] : dog

The second array segment (with the middle five elements) contains:
   [2] : brown
   [3] : fox
   [4] : jumps
   [5] : over
   [6] : the

After the first array segment is modified, the second array segment now contains:
   [2] : brown
   [3] : LION
   [4] : jumps
   [5] : over
   [6] : the

*/
open System

// Print functions.
let printIndexAndValues (myArr: string []) =
    for i = 0 to myArr.Length - 1 do
        printfn $"   [{i}] : {myArr[i]}"
    printfn ""

let printIndexAndValuesSeg (arrSeg: ArraySegment<string>) =
    for i = arrSeg.Offset to arrSeg.Offset + arrSeg.Count - 1 do
        printfn $"   [{i}] : {arrSeg.Array[i]}"
    printfn ""

// Create and initialize a new string array.
let myArr = [| "The"; "quick"; "brown"; "fox"; "jumps"; "over"; "the"; "lazy"; "dog" |]

// Display the initial contents of the array.
printfn "The original array initially contains:"
printIndexAndValues myArr

// Define an array segment that contains the entire array.
let myArrSegAll = ArraySegment<string>(myArr)

// Display the contents of the ArraySegment.
printfn "The first array segment (with all the array's elements) contains:"
printIndexAndValuesSeg myArrSegAll

// Define an array segment that contains the middle five values of the array.
let myArrSegMid = ArraySegment<string>(myArr, 2, 5)

// Display the contents of the ArraySegment.
printfn "The second array segment (with the middle five elements) contains:"
printIndexAndValuesSeg myArrSegMid

// Modify the fourth element of the first array segment myArrSegAll.
myArrSegAll.Array[3] <- "LION"

// Display the contents of the second array segment myArrSegMid.
// Note that the value of its second element also changed.
printfn "After the first array segment is modified, the second array segment now contains:"
printIndexAndValuesSeg myArrSegMid


(*
This code produces the following output.

The original array initially contains:
   [0] : The
   [1] : quick
   [2] : brown
   [3] : fox
   [4] : jumps
   [5] : over
   [6] : the
   [7] : lazy
   [8] : dog

The first array segment (with all the array's elements) contains:
   [0] : The
   [1] : quick
   [2] : brown
   [3] : fox
   [4] : jumps
   [5] : over
   [6] : the
   [7] : lazy
   [8] : dog

The second array segment (with the middle five elements) contains:
   [2] : brown
   [3] : fox
   [4] : jumps
   [5] : over
   [6] : the

After the first array segment is modified, the second array segment now contains:
   [2] : brown
   [3] : LION
   [4] : jumps
   [5] : over
   [6] : the

*)
Public Class SamplesArray

    Public Shared Sub Main()

        ' Create and initialize a new string array.
        Dim myArr As String() =  {"The", "quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog"}

        ' Display the initial contents of the array.
        Console.WriteLine("The original array initially contains:")
        PrintIndexAndValues(myArr)

        ' Define an array segment that contains the entire array.
        Dim myArrSegAll As New ArraySegment(Of String)(myArr)

        ' Display the contents of the ArraySegment.
        Console.WriteLine("The first array segment (with all the array's elements) contains:")
        PrintIndexAndValues(myArrSegAll)

        ' Define an array segment that contains the middle five values of the array.
        Dim myArrSegMid As New ArraySegment(Of String)(myArr, 2, 5)

        ' Display the contents of the ArraySegment.
        Console.WriteLine("The second array segment (with the middle five elements) contains:")
        PrintIndexAndValues(myArrSegMid)

        ' Modify the fourth element of the first array segment myArrSegAll.
        myArrSegAll.Array(3) = "LION"

        ' Display the contents of the second array segment myArrSegMid.
        ' Note that the value of its second element also changed.
        Console.WriteLine("After the first array segment is modified, the second array segment now contains:")
        PrintIndexAndValues(myArrSegMid)

    End Sub

    Public Shared Sub PrintIndexAndValues(arrSeg As ArraySegment(Of String))
        Dim i As Integer
        For i = arrSeg.Offset To (arrSeg.Offset + arrSeg.Count - 1)
            Console.WriteLine("   [{0}] : {1}", i, arrSeg.Array(i))
        Next i
        Console.WriteLine()
    End Sub

    Public Shared Sub PrintIndexAndValues(myArr as String())
        Dim i As Integer
        For i = 0 To (myArr.Length - 1)
            Console.WriteLine("   [{0}] : {1}", i, myArr(i))
        Next i
        Console.WriteLine()
    End Sub

End Class


'This code produces the following output.
'
'The original array initially contains:
'   [0] : The
'   [1] : quick
'   [2] : brown
'   [3] : fox
'   [4] : jumps
'   [5] : over
'   [6] : the
'   [7] : lazy
'   [8] : dog
'
'The first array segment (with all the array's elements) contains:
'   [0] : The
'   [1] : quick
'   [2] : brown
'   [3] : fox
'   [4] : jumps
'   [5] : over
'   [6] : the
'   [7] : lazy
'   [8] : dog
'
'The second array segment (with the middle five elements) contains:
'   [2] : brown
'   [3] : fox
'   [4] : jumps
'   [5] : over
'   [6] : the
'
'After the first array segment is modified, the second array segment now contains:
'   [2] : brown
'   [3] : LION
'   [4] : jumps
'   [5] : over
'   [6] : the

ArraySegment<T>(T[])

Quelle:
ArraySegment.cs
Quelle:
ArraySegment.cs
Quelle:
ArraySegment.cs
Quelle:
ArraySegment.cs
Quelle:
ArraySegment.cs

Initialisiert eine neue Instanz der ArraySegment<T> Struktur, die alle Elemente im angegebenen Array abgrenzt.

public:
 ArraySegment(cli::array <T> ^ array);
public ArraySegment(T[] array);
new ArraySegment<'T> : 'T[] -> ArraySegment<'T>
Public Sub New (array As T())

Parameter

array
T[]

Das array, das umbrochen werden soll.

Ausnahmen

array ist null.

Hinweise

Dieser Konstruktor erstellt eine ArraySegment<T> , die alle Elemente von array. Das heißt, die Offset Eigenschaft des ArraySegment<T> Werts ist 0 und seine Count Eigenschaft ist die Länge von array. Verwenden Sie den ArraySegment<T>(T[], Int32, Int32) Konstruktor, um ein Array ArraySegment<T> zu erstellen, das nur einen Teil eines Arrays abgrenzt.

Das ursprüngliche Array muss eindimensional sein und eine nullbasierte Indizierung aufweisen.

Mehrere ArraySegment<T> Instanzen können auf dasselbe ursprüngliche Array verweisen und sich überlappen.

Weitere Informationen

Gilt für:

ArraySegment<T>(T[], Int32, Int32)

Quelle:
ArraySegment.cs
Quelle:
ArraySegment.cs
Quelle:
ArraySegment.cs
Quelle:
ArraySegment.cs
Quelle:
ArraySegment.cs

Initialisiert eine neue Instanz der ArraySegment<T> Struktur, die den angegebenen Bereich der Elemente im angegebenen Array abgrenzt.

public:
 ArraySegment(cli::array <T> ^ array, int offset, int count);
public ArraySegment(T[] array, int offset, int count);
new ArraySegment<'T> : 'T[] * int * int -> ArraySegment<'T>
Public Sub New (array As T(), offset As Integer, count As Integer)

Parameter

array
T[]

Das Array, das den Bereich der zu trennenden Elemente enthält.

offset
Int32

Der nullbasierte Index des ersten Elements im Bereich.

count
Int32

Die Anzahl der Elemente im Bereich.

Ausnahmen

array ist null.

offset oder count ist kleiner als 0.

offset und count geben Sie keinen gültigen Bereich in array.

Hinweise

Das ursprüngliche Array muss eindimensional sein und eine nullbasierte Indizierung aufweisen.

Mehrere ArraySegment<T> Instanzen können auf dasselbe ursprüngliche Array verweisen und sich überlappen.

Weitere Informationen

Gilt für: