在c#中从数组的中间获取元素
本文关键字:中间 获取 元素 数组 | 更新日期: 2023-09-27 18:19:02
c#中有一个数组
string[] arr = new string[] {"1","A","D","3","5","AF","34","TU","E","OP","4"};
那么如何从这个数组的中间获取元素呢比如
string[] fromArr = new string[5];
fromArr = {"D","3","5","AF","34"};
你知道有什么方法或方法去做吗?
最简单的方法是使用LINQ2Objects
var fromArr = arr.Skip(2).Take(5).ToArray();
最高效的方法是使用Array.Copy
,但是代码编写起来会麻烦得多,你需要自己弄清楚,包括处理数组不够长时的所有边缘情况等。
但是如果只使用几次结果,不需要将其复制回数组,则可以使用LINQ2SQL的惰性求值特性
IEnumerable<string> fromArr = arr.Skip(2).Take(5);
,那么你可以在循环中使用fromArr
,甚至不首先复制数据。
当我想到它时,你可以选择使用ArraySegment<string>
,而不是复制到新的数组。
但是为了可读性和简单性,坚持使用LINQ版本,除非你有真正的理由使用另一个替代方案。
LINQ有一些很好的方法。
arr.Skip(2).Take(5).ToArray()
应该产生你需要的东西。
参考在这里:http://msdn.microsoft.com/en-us/library/bb386988.aspx
使用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);