C#如何数组传参时传数组的指定一部分

#问题遇到的现象和发生背景

#问题相关代码,请勿粘贴截图
在C语言中,传入数组

#include <stdio.h>

void show(char *data, int len)
{
    for(int i = 0; i < len; i++)
    {
       printf(",%.2X"+!i, data[i]);
    }
    printf("\n");
}

int main(void)
{
   char data[] = {1,2,3,4,5,6,7,8,9,10};
   show(data,sizeof(data));
   show(data+2, sizeof(data) - 2);
}
运行结果及报错内容

执行结果
01 02 03 04 05 06 07 08 09 0A
03 04 05 06 07 08 09 0A

我的解答思路和尝试过的方法

我现在使用就是重新创建一个数组,然后将原数组的数据指定部分复制到新的数组中, 然后传入新的数组,
这样我怕回浪费过多的内存.

我想要达到的结果

然后在C# 我现在有 Byte[] data, 应该如何实现上面C语言中的功能呢.

data.Skip(2)
再严密点就
data.Skip(2).To Array()

array自带copyto

img