c#数组的子字符串等价物[重复]
Posted
技术标签:
【中文标题】c#数组的子字符串等价物[重复]【英文标题】:c# Substring Equivalent of array [duplicate] 【发布时间】:2017-12-28 19:05:34 【问题描述】:数组有等价的子字符串吗?
输入new char[] foo = 'a', 'b', 'c', 'd', 'e', 'f'
如果这是一个字符串 abcdef
我会使用 .Substring(0, 2)
并得到 ab
如果输入索引是0, 2
,是否有内置方法可以给我char[] 'a', 'b'
?
代码示例
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 数组转换回字符串,使用 Substring 再转换回 Char 数组。但这需要一些额外的代码行,我想知道,如果只有 1 个内置方法是可能的。
【问题讨论】:
有一个ArraySegment
类你可以使用。
【参考方案1】:
没有一种方法可以做到这一点,但您可以使用 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);
【讨论】:
另请看ArraySegment<T>
。
如何在特定索引上结束段?这看起来你只能从指定的索引获取数组到数组的末尾以上是关于c#数组的子字符串等价物[重复]的主要内容,如果未能解决你的问题,请参考以下文章
在 C# 中使用 LINQ 在字符串数组中查找确切的子字符串