c# - 获取以偏移量开头的数组

标签 c# arrays

我正在使用 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) );

关于c# - 获取以偏移量开头的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1055923/

相关文章:

c# - WPF - 具有自定义 DefaultStyleKey 的自定义窗口丢失 FocusVisualStyle

c# - HttpWebRequest 中图像的最大允许大小是多少?

c# - 使用命令行参数安装 IIS8

c# - Marshal Union(C ) 与结构包含 C# 中的数组

java - 泛型使用基元数组而不是包装数组会产生意想不到的行为

python - 如何有效地将矩阵变换应用于 NumPy 数组的每一行?

c# - 在 C# 中检查列表是否已更改的最少 CPU 密集型方法

c# - 谷歌 C++ 代码示例解释,翻译成 C#

C++ 算法按以下顺序切换数组的顺序 : [Last, First, Last - 1, First + 1...]

IOS如何比较具有不同值和元素数量的两个数组