-1

我有一个看起来像这样的字符串:

0122031203

我希望能够解析它并将以下内容添加到列表中:

01
22
03
12
03

所以,我需要获取每 2 个字符并提取它们。

我试过这个:

 List<string> mList = new List<string>();
 for (int i = 0; i < _CAUSE.Length; i=i+2) {
     mList.Add(_CAUSE.Substring(i, _CAUSE.Length));
 }
 return mList;

但是这里有些不对劲,我不断收到以下信息:

索引和长度必须引用字符串中的位置。参数名称:长度

我弄错了吗?

4

4 回答 4

2

使用 Linq 怎么样?

string s = "0122031203";
int i = 0;
var mList = s.GroupBy(_ => i++ / 2).Select(g => String.Join("", g)).ToList();
于 2013-03-18T18:11:29.180 回答
1

我相信您可能在 Substring 函数中错误地指定了长度。

尝试以下操作:

List<string> mList = new List<string>();

for (int i = 0; i < _CAUSE.Length; i = i + 2)
{
    mList.Add(_CAUSE.Substring(i, 2));
}

return mList;

如果您希望将其拆分为每个 2 个字符的块,则长度应为 2。

于 2013-03-18T18:07:40.663 回答
0

当您执行子字符串时,请尝试 _CAUSE.SubString(i, 2)。

于 2013-03-18T18:08:04.020 回答
0

2points: 1) as previously mentioned, it should be substring(i,2); 2) U should consider the case when the length of ur string is odd. For example 01234: do u want it 01 23 and u'll discard the 4 or do u want it to be 01 23 4 ??

于 2013-03-18T18:24:13.353 回答