有在C#中的数组得到数组中的元素在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"};
不要ü知道任何方法或任何方式来做到这一点?
有在C#中的数组得到数组中的元素在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()
应该产生你所需要的。
使用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);
定义中。你想要多少?它是固定大小还是基于数组大小? – 2011-12-30 15:42:04
[C#数组,从现有数组获取子数组]的可能重复(http://stackoverflow.com/questions/943635/c-sharp-arrays-getting-a-sub-array-from-an-existing -array) – John 2011-12-30 15:42:20
http://msdn.microsoft.com/en-us/library/z50k9bft.aspx – wiero 2011-12-30 15:42:29