简单的C#输出

时间:2013-11-20 15:01:26

标签: 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]);
            }
        }
    }
}

输出 Code

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

3 个答案:

答案 0 :(得分:20)

更改

Console.WriteLine("index {0} holds number {0}", i, Numbers[i]);

Console.WriteLine("index {0} holds number {1}", i, Numbers[i]);

原因:您的索引(格式字符串)在基于零的索引顺序中引用字符串之后的参数。所以{0}表示字符串后面的第一个参数,{1}表示第二个参数,{2}如果你有第三个参数等。

有关详细信息,请参阅this page

编辑: 您也可以使用格式String多次引用参数。 E.g:

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

这也等同于

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

答案 1 :(得分:5)

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

应该是:

Console.WriteLine( "index {0} holds number {1}", i, Numbers[i] );

答案 2 :(得分:5)

Console.WriteLine("index {0} holds number {1}", i, Numbers[i] );