获取以偏移量开头的数组

2024-01-09

我正在使用 C#,但我无法像 C++ 那样从某个点开始发送数组,这很烦人。

假设这段代码:

int[] array = new int[32];
foobar (array + 4); //send array starting from the 4th place.

这对于 C# 来说是一种奇怪的语法,因为我们没有任何可用的指针,但肯定有办法做到这一点吗? 有 .Skip(),但我认为它会生成一个新数组,这是我不喜欢的。

我有什么选择?


您可能想将其作为IEnumerable<int>而不是作为数组。然后您可以使用skip,它只会将迭代器移动到跳过的元素数量。使用这种方式,您不必使用 ToArray() 并创建相关数组部分的副本。当然, IEnumerable 可能不适合您想要做的事情,但这很难从您的问题中看出。

public void FooBar( IEnumerable<int> bar )
{
  ...
}

int[] array = new int[32];
FooBar( array.Skip(4) );
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取以偏移量开头的数组 的相关文章

随机推荐