如何将一个字符串类型数组平均分成几个数组。
例如。
string [] input = {“a”,“b”,“c”,“”,“d” ,“e”,“f”}动态设置{string [] output =“a”,“b”,“c”,“”//第一次
string [] output =“d”,“e”,“f”,“”// second timetime}
答案 0 :(得分:1)
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();
}
答案 1 :(得分:1)
前段时间我在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
IEnumerable<char>
,您可能还想
var arr = res.Select(c => String.Join("", c)).ToArray();
获得
arr {string [2]}
[0]:“12345”
[1]:“67890”