当前位置: 首页 > 知识库问答 >
问题:

使C#foreach打印一次

卓雅达
2023-03-14

我被这个聪明的问题困住了。我找不到一个可定制的解决方案。我正在尝试使用foreach打印列表的列表。这是代码:

int i = 0;
StringBuilder sb = new StringBuilder();
foreach (var subList in result)
{
 i++;
 Console.WriteLine(sb.Append("******\n").Append("Group ").Append(i).Append(" - ").
                    Append("Number of students: ").Append(subList.Count()).Append("\n").Append("   
               Name:").Append("\n"));
 var exp = subList.GetEnumerator();
 while (exp.MoveNext())
 {
  Console.WriteLine(sb.Append("         ").Append(exp.Current.ToString()).Append("\n"));
 }
}

我试图得到这个结果(例如):

Group 1 - Number of students: 3
   Name:
    this
    is
    a
Group 2 - Number of students: 3
  Name:
    test
    again
    and-again 

等等。问题是,我总是得到这样的信息(每次都是从foreach打印出来的):

Console.WriteLine(sb.Append("******\n").Append("Group ").Append(i).Append(" - ").
         Append("Number of students: ").Append(subList.Count()).Append("\n").Append("   
             Name:").Append("\n"));

像这样:

******
Group 1 - Number of students: 3
   Name:
******
Group 1 - Number of students: 3
   Name:
         this
******
Group 1 - Number of students: 3
   Name:
         this
         is
******
Group 1 - Number of students: 3
   Name:
         this
         is
         a

并对列表的其余部分依此类推。谁能指导我解决这件事。任何帮助都非常感谢。

共有1个答案

司马飞
2023-03-14

sb.append的每次调用不需要console.writeline。您需要完全构建字符串,然后一次打印所有字符串

int i = 0;
StringBuilder sb = new StringBuilder();
foreach (var subList in result)
{
 i++;
 sb.Append("******\n")
   .Append("Group ")
   .Append(i)
   .Append(" - ")
   .Append("Number of students: ")
   .Append(subList.Count())
   .Append("\n")
   .Append("Name:")
   .Append("\n");

 foreach(var exp in subList)
 {
  sb.Append("         ").Append(exp.ToString()).Append("\n");
 }
}
Console.Write(sb.ToString());
 类似资料:
  • 我试图使用流按国籍对我的对象进行分组并打印出来。 但是它说:"不能解析方法'println"

  • 问题内容: 每当调用某个函数时,是否有任何方法可以在C或C ++的运行进程中转储调用堆栈?我想到的是这样的: Where的工作方式与Perl 类似。 或类似这样的东西: 在其中放置某种内部断点,该断点将在每次调用时打印堆栈跟踪。 标准的C库中是否存在类似的东西? 我正在使用GCC在Linux上工作。 背景 我有一个测试运行,该行为基于一些不应影响此行为的命令行开关而有所不同。我的代码有一个伪随机数

  • 嗨,我正在尝试使用C#应用程序的收据打印机打印一张账单/收据。 预期输出是这样的: 我一直在使用函数,但是输出常常不对齐,并且GET的间距取决于项目名称长度等。 怎样才能解决这个问题? 我使用的代码是

  • 我有一个连接到CUPS的打印机,它支持双面打印,如何通过java例程将其设置为单面打印或双面打印? 我曾尝试使用它的库使用ASET添加和addViewer首选项没有任何运气。 有人能提供一些建议吗?

  • 我目前的工作是创建机械图纸,用于发送给客户和作为施工图。当我的绘图完成后,我导出一个. pdf文件,并将其发送给客户端。 我们的客户非常喜欢黑白画,所以我试着提供他们。但是我用来画画的软件效果不好。它只有一个选项“所有颜色都是黑色”,我的画上有一些白色的“隐藏线”。当然,这些显示使用所有颜色作为黑色选项。 我找到了一个解决方案,那就是使用pdf打印机。效果很好,效果也很好。 现在我想打印这个。pd

  • 问题内容: 例如,我有两个变量,以及如何仅使用一个变量而不将类型转换为来在单独的行中打印两个整数。(如在C ++以下:) 问题答案: 在python3中: 在python2中: …或者使用python3的打印 自从我的第一个答案以来,OP就使用可变类型更改来编辑问题。更新已更新问题的答案: 如果您有一些整数,即和: Python 3: Python 2: 要么 要么