ArraySegment<T> Constructor (array<T>^)
.NET Framework (current version)
Initializes a new instance of the ArraySegment<T> structure that delimits all the elements in the specified array.
Assembly: mscorlib (in mscorlib.dll)
| Exception | Condition |
|---|---|
| ArgumentNullException | array is null. |
This constructor creates an ArraySegment<T> that delimits all the elements of array. That is, the Offset property of the ArraySegment<T> is 0 and its Count property is the length of array. To create an ArraySegment<T> that delimits only part of an array, use the ArraySegment<T>(array<T>^, Int32, Int32) constructor.
The original array must be one-dimensional and must have zero-based indexing.
Multiple ArraySegment<T> instances can refer to the same original array and can overlap.
The following code example passes an ArraySegment<T> structure to a method.
using namespace System; namespace Sample { public ref class SampleArray { public: static void Work() { // Create and initialize a new string array. array <String^>^ words = {"The", "quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog"}; // Display the initial contents of the array. Console::WriteLine("The first array segment" " (with all the array's elements) contains:"); PrintIndexAndValues(words); // Define an array segment that contains the entire array. ArraySegment<String^> segment(words); // Display the contents of the ArraySegment. Console::WriteLine("The first array segment" " (with all the array's elements) contains:"); PrintIndexAndValues(segment); // Define an array segment that contains the middle five // values of the array. ArraySegment<String^> middle(words, 2, 5); // Display the contents of the ArraySegment. Console::WriteLine("The second array segment" " (with the middle five elements) contains:"); PrintIndexAndValues(middle); // Modify the fourth element of the first array // segment segment.Array[3] = "LION"; // Display the contents of the second array segment // middle. 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(middle); Console::ReadLine(); } static void PrintIndexAndValues(ArraySegment<String^>^ segment) { for (int i = segment->Offset; i < (segment->Offset + segment->Count); i++) { Console::WriteLine(" [{0}] : {1}", i, segment->Array[i]); } Console::WriteLine(); } static void PrintIndexAndValues(array<String^>^ words) { for (int i = 0; i < words->Length; i++) { Console::WriteLine(" [{0}] : {1}", i, words[i]); } Console::WriteLine(); } }; } int main() { Sample::SampleArray::Work(); return 0; } /* 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 */
Universal Windows Platform
Available since 8
.NET Framework
Available since 2.0
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Available since 8
.NET Framework
Available since 2.0
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Show: