ArraySegment<T>-Struktur
Aktualisiert: November 2007
Begrenzt einen Abschnitt eines eindimensionalen Arrays.
Assembly: mscorlib (in mscorlib.dll)
ArraySegment<T> ist ein Wrapper um ein Array, das einen Bereich von Elementen in diesem Array begrenzt. Mehrere ArraySegment<T>-Instanzen können auf dasselbe ursprüngliche Array verweisen und sich überschneiden.
Da die Array-Eigenschaft keine Kopie des Arrays, sondern das gesamte ursprüngliche Array zurückgibt, wird das ursprüngliche Array geändert, wenn Änderungen am von der Array-Eigenschaft zurückgegebenen Array vorgenommen werden.
Das ursprüngliche Array muss eindimensional sein und einen nullbasierten Index haben.
Im folgenden Codebeispiel wird einer Methode eine ArraySegment<T>-Struktur ü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 */
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile für Smartphone, Windows Mobile für Pocket PC, Xbox 360
.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.