ArraySegment आपके विचार से अधिक उपयोगी है। निम्नलिखित इकाई परीक्षण चलाने की कोशिश करें और चकित होने के लिए तैयार रहें!
[TestMethod]
public void ArraySegmentMagic()
{
var arr = new[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
var arrSegs = new ArraySegment<int>[3];
arrSegs[0] = new ArraySegment<int>(arr, 0, 3);
arrSegs[1] = new ArraySegment<int>(arr, 3, 3);
arrSegs[2] = new ArraySegment<int>(arr, 6, 3);
for (var i = 0; i < 3; i++)
{
var seg = arrSegs[i] as IList<int>;
Console.Write(seg.GetType().Name.Substring(0, 12) + i);
Console.Write(" {");
for (var j = 0; j < seg.Count; j++)
{
Console.Write("{0},", seg[j]);
}
Console.WriteLine("}");
}
}
आप देखिए, आपको जो करना है, उसे IList को ArraySegment देना है और यह उन सभी चीजों को करेगा जो आप शायद पहली जगह में करने की उम्मीद करते हैं। ध्यान दें कि प्रकार अभी भी ArraySegment है, भले ही यह एक सामान्य सूची की तरह व्यवहार कर रहा हो।
उत्पादन:
ArraySegment0 {0,1,2,}
ArraySegment1 {3,4,5,}
ArraySegment2 {6,7,8,}
ArraySegment.Net 4.5 में दमदार है।