在c#中提取字符串数组的某些部分

时间:2014-03-24 07:45:35

标签: c#

我有一个包含31个字符串的字符串数组,现在我必须从第3个位置提取字符串到第27个位置,并将该部分作为字符串数组传递给另一个函数。我如何在c#中实现这个目标?

5 个答案:

答案 0 :(得分:2)

您可以使用Array.Copy(Array, Int32, Array, Int32, Int32) overload ;

  

从指定的范围开始复制Array中的一系列元素   源索引并将它们粘贴到另一个数组开始   指定的目的地索引。

Array.Copy(source, 2, destination, 0, 25);

但这会创建一个新数组。您可以使用LINQ,使用SkipTake方法,例如;

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[]>();