C # simple output

So, I have been playing with C # lately, and I don't understand the formatting of the output.

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

Output Code

My expected result was index i holds number Number[i] . So can someone explain what to change, or link me to a good C # page in the topic of output formatting. I know there is a way to do this in 2 lines.

+6
source share
3 answers

Edit

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

to

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

Reason: your indexes (in the format string) refer to the parameters after the string in the zero index. So, {0} for the first parameter after the line, {1} for the second, {2} if you have a third, etc.

See this page for more details.

edit: You can also reference parameters several times in your String format. For instance:.

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

It is also equivalent

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

Your second seal is incorrect. You are using string.Format but you are not binding the second parameter.

It should be:

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

Source: https://habr.com/ru/post/958488/


All Articles