给定fromIndex和toIndex返回C#数组子集的最佳方法是什么?
显然我可以使用循环,但还有其他方法吗?
这是我希望填写的方法签名。
public static FixedSizeList<T> FromExisting(FixedSizeList<T> fixedSizeList, Int32 fromIndex, Int32 toIndex)
FixedSizeList内部实现
private T[] _Array;
this._Array = new T[size];
答案 0 :(得分:9)
myArray.Skip(fromIndex).Take(toIndex - fromIndex + 1);
编辑: Skip和Take的结果是IEnumerable,计数将为零,直到你实际使用它为止。
如果你尝试
int[] myArray = {1, 2, 3, 4, 5};
int[] subset = myArray.Skip(2).Take(2).ToArray();
子集将是{3,4}
答案 1 :(得分:3)
列表已经有一个CopyTo
方法可以做你想要的。
http://msdn.microsoft.com/en-us/library/3eb2b9x8.aspx
这是该方法的签名:
public void CopyTo( int index, T[] array, int arrayIndex, int count )
答案 2 :(得分:3)
Array.Copy
将执行what you want。