using System;
using System.Diagnostics;
using System.Linq;
namespace ProgramConsole
{
public class Program
{
public static void Main(string[] args)
{
// Create an ArraySegment from this array.
int[] ourarray = { 15, 25, 35 };
ArraySegment<int> newsegment = new ArraySegment<int>(ourarray, 1, 2);
// Write the array.
Console.WriteLine("-- Array --");
int[] original = newsegment.Array;
foreach ( int value in original )
{
Console.WriteLine(value);
}
// Write the offset.
Console.WriteLine("-- Offset --");
Console.WriteLine(newsegment.Offset);
// Write the count.
Console.WriteLine("-- Count --");
Console.WriteLine(newsegment.Count);
// Write the elements in the range specified in the ArraySegment.
Console.WriteLine("-- Range --");
for ( int i = newsegment.Offset; i <= newsegment.Count; i++ )
{
Console.WriteLine(newsegment.Array[i]);
}
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uRGlhZ25vc3RpY3M7CnVzaW5nIFN5c3RlbS5MaW5xOwoKbmFtZXNwYWNlIFByb2dyYW1Db25zb2xlCnsKICAgIHB1YmxpYyBjbGFzcyBQcm9ncmFtCiAgICB7CiAgICAgICAgcHVibGljIHN0YXRpYyB2b2lkIE1haW4oc3RyaW5nW10gYXJncykKICAgICAgICB7CiAgICAgICAgICAgIC8vIENyZWF0ZSBhbiBBcnJheVNlZ21lbnQgZnJvbSB0aGlzIGFycmF5LgogICAgICAgICAgICBpbnRbXSBvdXJhcnJheSA9IHsgMTUsIDI1LCAzNSB9OwogICAgICAgICAgICBBcnJheVNlZ21lbnQ8aW50PiBuZXdzZWdtZW50ID0gbmV3IEFycmF5U2VnbWVudDxpbnQ+KG91cmFycmF5LCAxLCAyKTsKCiAgICAgICAgICAgIC8vIFdyaXRlIHRoZSBhcnJheS4KICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIi0tIEFycmF5IC0tIik7CiAgICAgICAgICAgIGludFtdIG9yaWdpbmFsID0gbmV3c2VnbWVudC5BcnJheTsKICAgICAgICAgICAgZm9yZWFjaCAoIGludCB2YWx1ZSBpbiBvcmlnaW5hbCApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKHZhbHVlKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gV3JpdGUgdGhlIG9mZnNldC4KICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIi0tIE9mZnNldCAtLSIpOwogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZShuZXdzZWdtZW50Lk9mZnNldCk7CgogICAgICAgICAgICAvLyBXcml0ZSB0aGUgY291bnQuCiAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCItLSBDb3VudCAtLSIpOwogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZShuZXdzZWdtZW50LkNvdW50KTsKCiAgICAgICAgICAgIC8vIFdyaXRlIHRoZSBlbGVtZW50cyBpbiB0aGUgcmFuZ2Ugc3BlY2lmaWVkIGluIHRoZSBBcnJheVNlZ21lbnQuCiAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCItLSBSYW5nZSAtLSIpOwogICAgICAgICAgICBmb3IgKCBpbnQgaSA9IG5ld3NlZ21lbnQuT2Zmc2V0OyBpIDw9IG5ld3NlZ21lbnQuQ291bnQ7IGkrKyApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKG5ld3NlZ21lbnQuQXJyYXlbaV0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9