c#中的分割数组

本文关键字:数组 分割 | 更新日期: 2023-09-27 18:18:40

如何将字符串类型的数组平均分割为几个数组。

string[]输入={"a"、"b"、"c",","d","e","f"}
动态集{string[]输出="a"、"b","c","//string[]输出="d","e","f","//第二timetime}

c#中的分割数组

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"