将列表对象写入新行,其间包含空格

时间:2014-05-23 06:38:10

标签: c# list foreach

我在解释事情时要垃圾,所以我只是让代码进行交谈。这是我的一段代码

PIDages.Sort();
lollist.WriteLine();
foreach (int a in PIDages)
{
    lollist.Write(a + "  ");   
}
PIDages.Clear();

此代码重复多次。目前,它将以下列格式输出新行上的每个列表

13*SPACE*  
13 13*SPACE*
1 2 8*SPACE*

是否有一个简单的方法可以解决每行末尾没有空格字符的问题?

4 个答案:

答案 0 :(得分:4)

你可以使用string.Join函数

lollist.WriteLine(String.Join(" ", PIDages)); 

我目前还不确定是否需要强制转换,在C#2.0中语法将是

lollist.WriteLine(String.Join(" ", PIDages.Select(a => a.ToString()).ToArray());

答案 1 :(得分:1)

您可以先连接字符串,然后使用Trim删除字符串开头或结尾的任何空格。

有点像:

string result = String.Empty;
foreach (int a in PIDages)
{
    result = result + a + " ";
}
result = result.Trim();
lollist.Write(result);   

答案 2 :(得分:0)

如果你想跳过字符串末尾的空格

您可以尝试:

  PIDages.Sort();
  lollist.WriteLine();
  string sResult = string.Empty;

  foreach (int a in PIDages)
  {
      sResult += (a + "  ");   
  }
  lollist.Write(sResult.Trim());

  PIDages.Clear();

答案 3 :(得分:0)

保持简单?

bool add_space = false;
PIDages.Sort();
lollist.WriteLine();
foreach (int a in PIDages)
{
    if (add_space)
        lollist.Write("  ");
    else
        add_space = true;
    lollist.Write(a);
}
PIDages.Clear();