我有一个包含31个字符串的字符串数组,现在我必须从第3个位置提取字符串到第27个位置,并将该部分作为字符串数组传递给另一个函数。我如何在c#中实现这个目标?
答案 0 :(得分:2)
您可以使用Array.Copy(Array, Int32, Array, Int32, Int32)
overload ;
从指定的范围开始复制Array中的一系列元素 源索引并将它们粘贴到另一个数组开始 指定的目的地索引。
Array.Copy(source, 2, destination, 0, 25);
但这会创建一个新数组。您可以使用LINQ,使用Skip
和Take
方法,例如;
var destination = source.Skip(2).Take(25).ToArray();
我假设你也想要第27个位置,这就是我在这两个例子中使用25
作为长度(或计数)的原因。如果您不想获得第27个位置,则需要在这两种情况下将25
更改为24
。
答案 1 :(得分:1)
如果你有linq,你可以这样做:
var finalResult = foo(myStrings.Skip(2).Take(25).ToArray())
答案 2 :(得分:0)
尝试这样
var arr2 = arr1.Select( x => x.substring(3,27));
答案 3 :(得分:0)
如果您使用LINQ,答案非常简单。
var arrayToPassToMethod = array.Skip(2).Take(24).ToArray();
答案 4 :(得分:0)
试试这个:
string[][] result = a.Skip(2).Take(24).ToArray<string[]>();