2013-11-20 5 views
6

तो मैं हाल ही में सी # के साथ खेल रहा हूं और मुझे आउटपुट स्वरूपण को समझ में नहीं आता है।सरल सी # आउटपुट

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] था। तो क्या कोई भी बता सकता है कि क्या बदलना है, या मुझे आउटपुट स्वरूपण विषय पर एक अच्छा सी # पृष्ठ के साथ लिंक करें। मुझे पता है कि इसे 2 लाइनों में करने का एक तरीका है।

उत्तर

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 देखें।

संपादित करें: आप अपने प्रारूप स्ट्रिंग में कई बार पैरामीटर का संदर्भ भी दे सकते हैं। उदा .:

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])); 
+0

ओह, अजीब ... थॉट {0} संख्या के लिए एक प्लेसहोल्डर, जावा में% d की तरह था। –

+1

@destroyergm नहीं, वास्तव में स्ट्रिंग.फॉर्मैट फ़ंक्शन स्वचालित रूप से प्रत्येक पैरामीटर पर 'ToString() 'को कॉल करेगा। तो प्रकार अप्रासंगिक है। संपादित करें: हालांकि इस प्रकार के कुछ विशेष प्रारूप तारों के लिए 'IFormattable' लागू किया जा सकता है। लेकिन फिर भी, पैरामीटर का क्रम उनकी अनुक्रमणिका निर्धारित करता है। –

5

आपकी दूसरी प्रिंट गलत है। आप string.Format का उपयोग करते हैं लेकिन आप दूसरे पैरामीटर को बाध्य नहीं करते हैं।

यह होना चाहिए:

Console.WriteLine("index {0} holds number {1}", i, Numbers[i]); 
5
Console.WriteLine("index {0} holds number {1}", i, Numbers[i]); 
संबंधित मुद्दे