将引用传递到C#数组中的元素

将引用传递到C#数组中的元素,c#,arrays,C#,Arrays,我使用 string[] parts = string.spilt(" "); 得到一个包含X部分的数组,我想得到一个从元素开始的字符串数组的副本 parts[x-2] 除了明显的暴力方法(创建新数组并插入字符串),在C#?使用中还有更优雅的方法来实现这一点吗。它有一个重载,可以满足您的需要: 复制(数组,Int32,数组, Int32,Int32) 从指定源开始从数组复制元素范围 索引并将它们粘贴到另一个数组 从指定的目的地开始 索引 我猜是这样的: string[] less = ne

我使用

string[] parts = string.spilt(" ");
得到一个包含X部分的数组,我想得到一个从元素开始的字符串数组的副本

parts[x-2]
除了明显的暴力方法(创建新数组并插入字符串),在C#?

使用中还有更优雅的方法来实现这一点吗。它有一个重载,可以满足您的需要:

复制(数组,Int32,数组, Int32,Int32)
从指定源开始从数组复制元素范围 索引并将它们粘贴到另一个数组 从指定的目的地开始 索引

我猜是这样的:

string[] less = new string[parts.Length - (x - 2)];
Array.Copy(parts, x - 2, less, 0, less.Length);
(我确信其中有一个bug,可以消除掉它。)

数组怎么样。复制

复制方法(数组,Int32,数组,Int32,Int32)

从从指定源索引开始的数组复制一系列元素,并将它们粘贴到从指定目标索引开始的另一个数组。长度和索引指定为32位整数

List parts=新列表(s.Split(“”);
零件拆卸范围(0,x-2);

假设
List(string[])
经过优化,可以使用现有阵列作为备份存储,而不是执行复制操作,这可能比执行阵列复制更快。

我记得回答了这个问题,刚刚了解了一个新对象,它可以提供执行所需操作的高性能方法

看一看。它会让你做一些类似的事情

string[] parts = myString.spilt(" ");
int idx = parts.Length - 2;
var stringView = new ArraySegment<string>(parts, idx, parts.Length - idx);
string[]parts=myString.spilt(“”);
int idx=零件。长度-2;
var stringView=newarraysegment(parts,idx,parts.Length-idx);
string[] parts = myString.spilt(" ");
int idx = parts.Length - 2;
var stringView = new ArraySegment<string>(parts, idx, parts.Length - idx);