C#使用Trim()和Split(),而“Space”是一个重要值

时间:2013-05-28 03:11:11

标签: c# string list

我正在将一个字符串拆分成一个列表并将拆分部分转换为另一个参差不齐的列表。

问题是我的值是用空格分隔的,我不能在空格上使用Replace方法。我只需要修剪lineList值而不触及值之间的空格。

codeText = Regex.Replace(codeText, @"\s+", space.ToString());
lineList = codeText.Split(semicolon).ToList();

foreach(string ln in lineList)
{
    ln.Trim();// Not the right choice on my code.
    blockList = ln.Split(space).ToList();
    parameters.Add(blockList);
}
// First or last member of "parameters" is sometimes "space" 
// and i need to split before loading them in list.

2 个答案:

答案 0 :(得分:1)

回想一下,字符串在C#中是不可变的。 Trim方法返回一个必须分配的新字符串。此外,您无法在迭代时编辑foreach迭代变量。尝试:

foreach(string ln in lineList)
{
    var trimmed = ln.Trim();
    blockList = trimmed.Split(space).ToList();
    parameters.Add(blockList);
}

答案 1 :(得分:1)

也许这样的事情就足够了?

foreach(string ln in lineList)
{
      blockList = ln.Trim().Split(space).ToList();
      parameters.Add(blockList);
}