本文整理汇总了C#中System.ArraySegment<T>结构体的典型用法代码示例。如果您正苦于以下问题:C# ArraySegment<T>结构体的具体用法?C# ArraySegment<T>怎么用?C# ArraySegment<T>使用的例子?那么恭喜您, 这里精选的结构体代码示例或许可以为您提供帮助。
ArraySegment<T>结构体属于System命名空间,在下文中一共展示了ArraySegment<T>结构体的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Main
//引入命名空间
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();
}
}
输出:
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
示例2: Main
//引入命名空间
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
public class Example
{
private const int segmentSize = 10;
public static async Task Main()
{
List<Task> tasks = new List<Task>();
// Create array.
int[] arr = new int[50];
for (int ctr = 0; ctr <= arr.GetUpperBound(0); ctr++)
arr[ctr] = ctr + 1;
// Handle array in segments of 10.
for (int ctr = 1; ctr <= Math.Ceiling(((double)arr.Length)/segmentSize); ctr++) {
int multiplier = ctr;
int elements = (multiplier - 1) * 10 + segmentSize > arr.Length ?
arr.Length - (multiplier - 1) * 10 : segmentSize;
ArraySegment<int> segment = new ArraySegment<int>(arr, (ctr - 1) * 10, elements);
tasks.Add(Task.Run( () => { IList<int> list = (IList<int>) segment;
for (int index = 0; index < list.Count; index++)
list[index] = list[index] * multiplier;
} ));
}
try {
await Task.WhenAll(tasks.ToArray());
int elementsShown = 0;
foreach (var value in arr) {
Console.Write("{0,3} ", value);
elementsShown++;
if (elementsShown % 18 == 0)
Console.WriteLine();
}
}
catch (AggregateException e) {
Console.WriteLine("Errors occurred when working with the array:");
foreach (var inner in e.InnerExceptions)
Console.WriteLine("{0}: {1}", inner.GetType().Name, inner.Message);
}
}
}
输出:
1 2 3 4 5 6 7 8 9 10 22 24 26 28 30 32 34 36 38 40 63 66 69 72 75 78 81 84 87 90 124 128 132 136 140 144 148 152 156 160 205 210 215 220 225 230 235 240 245 250
示例3: Main
//引入命名空间
using System;
using System.Collections.Generic;
public class Example
{
public static void Main()
{
String[] names = { "Adam", "Bruce", "Charles", "Daniel",
"Ebenezer", "Francis", "Gilbert",
"Henry", "Irving", "John", "Karl",
"Lucian", "Michael" };
var partNames = new ArraySegment<String>(names, 2, 5);
// Cast the ArraySegment object to an IList<String> and enumerate it.
var list = (IList<String>) partNames;
for (int ctr = 0; ctr <= list.Count - 1; ctr++)
Console.WriteLine(list[ctr]);
}
}
输出:
Charles Daniel Ebenezer Francis Gilbert