使用ChunksUpto进行字符串拆分

时间:2015-07-29 06:38:02

标签: c#

我有一个var长度的字符串,例如" 0009000A000B000C"我希望在每4个章程或每个第二个章程中拆分它,我希望将结果值放在一个新的字符串中。

var str1= 0009;
var str2= 000A;
var str3= 000B;
var str4= 000C;

我试过这段代码:

var str =  "0009000A000B000C";
var splitgroup2 = ChunksUpto(str , 4);

 static IEnumerable<string> ChunksUpto(string str, int maxChunkSize)
 {
     for (var i = 0; i < str.Length; i += maxChunkSize)
        yield return str.Substring(i, Math.Min(maxChunkSize, str.Length - i));
 }

但我不知道如何将返回的值放在不同的字符串中 使用我希望做的新字符串值:

dataGrid2.Rows.Add(modbusadd_dec, poiterlangrow1_dec, poiterlangrow2_dec, opt_dec, rangemin_dec + "-" + rangemax_dec, Nunit_dec, Nperfix_dec, Dunit_dec, Dprefix_dec, grouptype, splitgroup2);

2 个答案:

答案 0 :(得分:3)

var str =  "0009000A000B000C";

var splitgroup2 = ChunksUpto(str , 4);

public string[] ChunksUpTo(string str, int count)
{
   if(count == 0)
      return null;

   List<string> result = new List<string>();
   int chunkCount = str.Length / count;
   for(int i = 0; i < temp; i++)
        result.Add(new string(str.Take(count).ToArray()))

   return result.ToArray();
}

我没有测试这段代码,但它看起来应该是这样的, 您可以使用此代码,增强它并修复错误(如果退出)

答案 1 :(得分:0)

您可以为此创建方法:

static string[] SplitInto(string value, int startIndex, int length)
{
    List<string> result = new List<string>();
    for(; startIndex + length < value.Length; startIndex += length)
       result.Add(valuel.Substring(startIndex, length));
    return result.ToArray();
}

并使用它:

string[] str = SplitInto("0009000A000B000C", 0, 3);