C# 在c中从数组中间获取元素#

C# 在c中从数组中间获取元素#,c#,arrays,C#,Arrays,c#中有一个数组 那么,我如何从这个数组的中间获取元素呢 string[] fromArr = new string[5]; fromArr = {"D","3","5","AF","34"}; 你知道这样做的方法吗?最简单的方法是使用LINQ2对象 var fromArr = arr.Skip(2).Take(5).ToArray(); 最有效的方法是使用,但代码编写起来要麻烦得多,您需要自己解决这个问题,包括在数组不够长时处理所有边缘情况等 但是,如果只使用结果几次,则不需要将其复制回数

c#中有一个数组

那么,我如何从这个数组的中间获取元素呢

string[] fromArr = new string[5];
fromArr = {"D","3","5","AF","34"};

你知道这样做的方法吗?

最简单的方法是使用LINQ2对象

var fromArr = arr.Skip(2).Take(5).ToArray();
最有效的方法是使用,但代码编写起来要麻烦得多,您需要自己解决这个问题,包括在数组不够长时处理所有边缘情况等

但是,如果只使用结果几次,则不需要将其复制回数组,只需使用LINQ2SQL的延迟求值特性即可

IEnumerable<string> fromArr = arr.Skip(2).Take(5);
IEnumerable fromArr=arr.Skip(2.Take(5);
然后,您可以在循环中使用
fromArr
,甚至不需要首先复制数据

考虑到这一点,您可能也可以选择使用,而不是复制到新阵列


但是为了可读性和简单性,请坚持使用LINQ版本,除非您有真正的理由使用另一个替代版本。

LINQ有一些很好的方法来实现这一点。就你而言

 arr.Skip(2).Take(5).ToArray()
你应该生产你需要的东西

这里有一个参考:

为此使用LINQ

arr.Skip(2).Take(5).ToArray()

您可以使用
Array.copy
对数组进行切片,例如:

string[] arr = new string[] {"1","A","D","3","5","AF","34","TU","E","OP","4"};
string[] fromArr = new string[5];
Array.Copy(arr, 2, fromArr, 0, 5);

定义中间。你想要多少?它是固定大小还是基于数组大小?可能与您试图选择的值背后的要求/逻辑重复?这听起来像是家庭作业?
string[] arr = new string[] {"1","A","D","3","5","AF","34","TU","E","OP","4"};
string[] fromArr = new string[5];
Array.Copy(arr, 2, fromArr, 0, 5);