简单的C#输出

dev*_*ium 8 c# arrays console-output

所以我最近一直在玩C#,我不明白输出格式.

using System;

namespace Arrays
{
    class Program
    {
        static void Main()
        {
            Random r = new Random();

            int[] Numbers = new int[10];
            for (int i = 0; i < Numbers.Length; i++)
            {
                Numbers[i] = r.Next(101);
            }

            for (int i = 0; i < Numbers.Length; i++)
            {
                Console.WriteLine("index {0} holds number {0}", i,Numbers[i]);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

产量 码

我的预期产量是index i holds number Number[i].因此,任何人都可以解释要更改的内容,或者将我与输出格式主题上的好C#页面链接起来.我知道有两种方法可以做到这一点.

Dav*_* S. 19

更改

Console.WriteLine("index {0} holds number {0}", i, Numbers[i]);
Run Code Online (Sandbox Code Playgroud)

Console.WriteLine("index {0} holds number {1}", i, Numbers[i]);
Run Code Online (Sandbox Code Playgroud)

原因:您的索引(格式为字符串)引用了从零开始的索引顺序的字符串后面的参数.所以{0}表示字符串后的第一个参数,{1}表示第二个参数,{2}表示第三个参数等.

有关详细信息,请参阅此页面.

编辑:您也可以使用格式String多次引用参数.例如:

Console.WriteLine(
    "index {0} holds number {1} (Numbers[{0}] == {1})", i, Numbers[i]);
Run Code Online (Sandbox Code Playgroud)

这也相当于

Console.WriteLine(String.Format(
    "index {0} holds number {1} (Numbers[{0}] == {1})", i, Numbers[i]));
Run Code Online (Sandbox Code Playgroud)


Gho*_*t93 5

你的第二次打印错了.您使用string.Format但不绑定第二个参数.

它应该是:

Console.WriteLine( "index {0} holds number {1}", i, Numbers[i] );
Run Code Online (Sandbox Code Playgroud)


zka*_*oca 5

Console.WriteLine("index {0} holds number {1}", i, Numbers[i] );
Run Code Online (Sandbox Code Playgroud)