c#Substring数组的等价物

时间:2017-07-22 21:46:22

标签: c# arrays string substring equivalent

是否存在数组的子字符串等效项?

输入new char[] foo = {'a', 'b', 'c', 'd', 'e', 'f'}

如果这是字符串abcdef,我会使用.Substring(0, 2)并获取ab

如果输入索引为char[] {'a', 'b'},是否有内置方法可以提供0, 2

代码示例

char[] foo = {'a', 'b', 'c', 'd', 'e', 'f'};
char[] bar = foo.**Method**(0, 2); //what can I do here?

Console.WriteLine(bar);
//Output would be` **ab**

我知道我可以将Char数组转换回String,使用Substring并返回Char数组。但是这需要一些额外的代码行,我想知道,如果只有一个内置的方法可以。

1 个答案:

答案 0 :(得分:6)

没有一种方法,但您可以使用Linq获得相同的效果,如

var newArr = set.Skip(n).Take(k).ToArray();

进一步的步骤可能是编写扩展方法

public static class MyExtensions
{
    public static T[] Subsequence<T>(this IEnumerable<T> arr,int startIndex, int length)
    {
        return arr.Skip(startIndex).Take(length).ToArray();
    }
}

并将其用作

var newset = new[] { 1, 2, 3, 4, 5 }.Subsequence(1, 2);