我正在使用C#。 我有一个大小为10的数组。我想将它传递给一个函数,但只能从第二个元素传递给它。在C中,这是我实现它的方式
myfunc(myarray + 1)
实际上,我实际上正在移动数组/删除第一个元素。
如何在C#中实现它?
答案 0 :(得分:4)
如果您使用的是.NET 3.5,最简单的方法是使用Skip(1)然后转换回数组。
myFunc(myArray.Skip(1).ToArray());
如果性能存在问题,那么您需要手动构建新数组或更改函数以接受索引参数。
答案 1 :(得分:4)
这里有四个选项:
IEnumerable<T>
代替数组(T[]
),然后使用myArray.Skip(1)
。ArraySegment<T>
而不是数组。这实际取决于您是否可以控制myfunc
功能中的使用情况。如果该函数必须接受一个数组,并且您无法传递索引,那么您将无法创建该数组的副本。
答案 2 :(得分:1)
您也可以将索引传递给函数,并且只能从该索引开始访问数组。