using System;
using System.Collections.Generic;
using System.Linq;
static class Program
{
public static List<T> Splice<T>(this List<T> source, int index, int count)
{
var items = source.GetRange(index, count);
source.RemoveRange(index, count);
return items;
}
public static void Main()
{
var data = new List<int> { 1, 2, 3, 4, 5, 6 };
var spliced = data.Splice(2, 1);
Console.WriteLine($@"Old enumerable: { string.Join(", ", data.Select(d => d.ToString()))}");
Console.WriteLine($@"Spliced: { string.Join(", ", spliced.Select(d => d.ToString()))}");
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CgpzdGF0aWMgY2xhc3MgUHJvZ3JhbQp7CiAgICBwdWJsaWMgc3RhdGljIExpc3Q8VD4gU3BsaWNlPFQ+KHRoaXMgTGlzdDxUPiBzb3VyY2UsIGludCBpbmRleCwgaW50IGNvdW50KQogICAgewogICAgICAgIHZhciBpdGVtcyA9IHNvdXJjZS5HZXRSYW5nZShpbmRleCwgY291bnQpOwogICAgICAgIHNvdXJjZS5SZW1vdmVSYW5nZShpbmRleCwgY291bnQpOwogICAgICAgIHJldHVybiBpdGVtczsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCiAgICB7CiAgICAgICAgdmFyIGRhdGEgPSBuZXcgTGlzdDxpbnQ+IHsgMSwgMiwgMywgNCwgNSwgNiB9OwogICAgICAgIHZhciBzcGxpY2VkID0gZGF0YS5TcGxpY2UoMiwgMSk7CiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoJEAiT2xkIGVudW1lcmFibGU6IHsgc3RyaW5nLkpvaW4oIiwgIiwgZGF0YS5TZWxlY3QoZCA9PiBkLlRvU3RyaW5nKCkpKX0iKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgkQCJTcGxpY2VkOiB7IHN0cmluZy5Kb2luKCIsICIsIHNwbGljZWQuU2VsZWN0KGQgPT4gZC5Ub1N0cmluZygpKSl9Iik7CiAgICB9Cn0=