所以我最近一直在玩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]);
}
}
}
}
输出
我的预期输出为index i holds number Number[i]
。因此,任何人都可以解释要更改的内容,或者将我与输出格式主题上的好C#页面链接起来。
我知道有两种方法可以做到这一点。
答案 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] );