c#中的分割数组
本文关键字:数组 分割 | 更新日期: 2023-09-27 18:18:40
如何将字符串类型的数组平均分割为几个数组。
string[]输入={"a"、"b"、"c",","d","e","f"}
动态集{string[]输出="a"、"b","c","//string[]输出="d","e","f","//第二timetime}
String[] splitString(int len, string input)
{
int idx = 0;
List<string> ret = new List<string>();
while(idx < input.Length)
{
if (idx+len > input.Length)
ret.Add(input.Substring(idx));
else
ret.Add(input.Substring(idx,len));
idx+=len;
}
return ret.ToArray();
}
前段时间,我在c#中实现了Ruby的Enumerable#each_slice
,似乎你可以使用它来获得你想要的。
static class ExtentionsMethods
{
public static IEnumerable<IEnumerable<T>> Split<T>(this IEnumerable<T> seq, int size)
{
while (seq.Any())
{
yield return seq.Take(size);
seq = seq.Skip(size);
}
}
}
那么你只需
var str = "1234567890";
var res = str.Split(5);
但由于结果是IEnumerable<char>
的IEnumerable
,您可能还需要
var arr = res.Select(c => String.Join("", c)).ToArray();
获取
arr {string [2]}
[0]:"12345"
[1]: "67890"