C# 在具有多个值的多行上写入线

C# 在具有多个值的多行上写入线,c#,C#,试着去理解 string myValue1 = "1"; string myValue2 = "2"; Console.WriteLine(myValue1, myValue2); 这只打印出第一个值,如果使用+将它们连接在一起。是否有办法将这两个值打印在单独的行上。 我可以使用两个writeline(每个值一个),但我正在努力提高效率(或愚蠢) 使用Environment.NewLine在不同的行上打印值。使用,它采用字符串格式和值 Console.WriteLine("{0}{1}{2}

试着去理解

string myValue1 = "1";
string myValue2 = "2";

Console.WriteLine(myValue1, myValue2);
这只打印出第一个值,如果使用+将它们连接在一起。是否有办法将这两个值打印在单独的行上。
我可以使用两个writeline(每个值一个),但我正在努力提高效率(或愚蠢)

使用
Environment.NewLine
在不同的行上打印值。使用,它采用字符串格式和值

Console.WriteLine("{0}{1}{2}", myValue1, Environment.NewLine, myValue2);

如果这是一个单一的声明,那么我真的怀疑它是否会给您带来任何性能增益

concat an Environment.NewLine/

您正在使用格式重载

这个支持占位符{0},{1}。。。第一个参数是格式,后续参数放在占位符中。由于字符串没有任何占位符,因此缺少第二个值。如果你想做什么,最好给WriteLine打两次电话

Console.WriteLine(myValue1);
Console.WriteLine(myValue2);

连接新行将使代码更难阅读。不要试图以这种方式提高效率。这是愚蠢的:)

如果您所说的高效是指编写更少的代码,那么您可以做到这一点:

    static void Main(string[] args)
    {
        WriteMultiLine(1,2, "hello", TimeSpan.FromMinutes(3));
        Console.ReadLine();
    }

    public static void WriteMultiLine(params object[] values)
    {
        foreach (var value in values)
        {
            Console.WriteLine(value);
        }
    }
你可以在不同的行上打印你想要的任何东西

输出为:

1
2
hello
00:03:00
您也可以使用,它将如下所示:

    Console.WriteLine(@"{0}
{1}", myValue1, myValue2);

输出将在单独的行上。然而,在我看来,c#看起来写得不好。

您的代码没有编译,以及如何将值传递到
控制台。WriteLine
?两个WriteLine就可以了。其他解决方案只是一种微观优化,在现实世界中不会产生任何明显的结果。它们只是字符串,我想看看我是否使用两条写线,或者是否有办法使用一条写线对两个值执行相同的操作?如何?如果你把它复制粘贴到每一个类中。否则,它是一行,就像用格式给出的示例一样,不同的是,用格式给出的一行更难写,也可能更难理解。当然,这个示例只有两个值,所以这可能有点过头了。不是说它是一个不好的辅助函数,只是说它不是全部都短。@MattJohnson好的,如果这是真正的用例,不是OP的简化,我同意,最好有两个顺序写线。但是,对于寻找相同问题的人来说,它可能还是有用的。在“效率”方面取得的任何进步都将被代码的可读性降低所抵消。编写更容易阅读的代码更“高效”。对于这个例子,这会在我的脑海中进行计算,而且很简单。谢谢。这让我的头脑更容易理解,我并没有这样想。