2013-04-28 7 views
20

में सरणी की सभी सामग्री, जावा में मैं का उपयोग मैं कुछ तरीकों जो इसे बदल लागू करने के बाद बाहर एक सरणी की सामग्री को मुद्रित करने के लिए कोशिश कर रहा हूँ मुद्रण:सी #

System.out.print(Arrays.toString(alg.id)); 

कैसे मैं सी # में यह क्या करते हो?

उत्तर

56

आप इस कोशिश कर सकते हैं:

yourArray.ToList().ForEach(i => Console.WriteLine(i.ToString())); 

संपादित:

foreach(var item in yourArray) 
{ 
    Console.WriteLine(item.ToString()); 
} 

इसके अलावा, आप कुछ इस तरह का उपयोग करना चाहेंगे या टिप्पणी में सुझाव के रूप में:

yourArray.ToList().ForEach(Console.WriteLine); 

संपादित करें: बाहर निकलने के लिए एक पंक्ति में [आपकी टिप्पणी के आधार पर]:

Console.WriteLine("[{0}]", string.Join(", ", yourArray)); 
//output style: [8, 1, 8, 8, 4, 8, 6, 8, 8, 8] 
+2

ध्यान दें कि लिखने के लिए जरूरी नहीं है क्योंकि लिखित रेखा में ऑब्जेक्ट लेने वाले फॉलबैक सहित विभिन्न ओवरलोड हैं। –

+0

मैंने alg.Id.ToList() का उपयोग किया। ForEach (Console.WriteLine), जो अच्छी तरह से काम करता है धन्यवाद। क्या वास्तव में इसे प्रिंट करना संभव है: [8, 1, 8, 8, 4, 8, 6, 8, 8, 8] –

+0

@ ErenErsönmez हां। तुम सही हो। लेकिन क्या होगा यदि आइटम अपने स्वयं के 'ToString' तंत्र के साथ एक कस्टम क्लास था। –

3

सी # में आप प्रत्येक तत्व को प्रिंट करने वाले सरणी के माध्यम से लूप कर सकते हैं। ध्यान दें कि System.Object एक विधि ToString() को परिभाषित करता है। System.Object() से प्राप्त कोई भी दिया गया प्रकार उस पर ओवरराइड कर सकता है।

वर्तमान ऑब्जेक्ट का प्रतिनिधित्व करने वाली स्ट्रिंग देता है।

http://msdn.microsoft.com/en-us/library/system.object.tostring.aspx

डिफ़ॉल्ट रूप से वस्तु का पूरा प्रकार का नाम, प्रिंट किया जाएगा, हालांकि कई निर्मित प्रकार है कि डिफ़ॉल्ट अधिक सार्थक परिणाम मुद्रित करने के लिए ओवरराइड। सार्थक आउटपुट प्रदान करने के लिए आप अपनी खुद की वस्तुओं में ToString() को ओवरराइड कर सकते हैं।

foreach (var item in myArray) 
{ 
    Console.WriteLine(item.ToString()); // Assumes a console application 
} 

तो आप अपने खुद के वर्ग फू था, तो आप ToString() की तरह रद्द कर सकते थे:

public class Foo 
{ 
    public override string ToString() 
    { 
     return "This is a formatted specific for the class Foo."; 
    } 
} 
25

वहाँ यह करने के लिए कई तरीके हैं, अन्य उत्तर अच्छा कर रहे हैं, यहाँ एक विकल्प है:

Console.WriteLine(string.Join("\n", myArrayOfObjects)); 
1

यदि आप प्यारा होना चाहते हैं, तो आप एक विस्तार विधि लिख सकते हैं जिसने कंसोल को IEnumerable<object> अनुक्रम लिखा था। यह किसी भी प्रकार की enumerables के साथ काम करेंगे क्योंकि IEnumerable<T> टी पर covariant है: (। मुझे नहीं लगता कि आप परीक्षण कोड की तुलना में यह अन्य का उपयोग करना चाहते हैं)

using System; 
using System.Collections.Generic; 

namespace Demo 
{ 
    internal static class Program 
    { 
     private static void Main(string[] args) 
     { 
      string[] array = new []{"One", "Two", "Three", "Four"}; 
      array.Print(); 

      Console.WriteLine(); 

      object[] objArray = new object[] {"One", 2, 3.3, TimeSpan.FromDays(4), '5', 6.6f, 7.7m}; 
      objArray.Print(); 
     } 
    } 

    public static class MyEnumerableExt 
    { 
     public static void Print(this IEnumerable<object> @this) 
     { 
      foreach (var obj in @this) 
       Console.WriteLine(obj); 
     } 
    } 
} 

+0

मुझे पूरी तरह समझने के लिए थोड़ी देर लग गई लेकिन यह बहुत आसान है, मुझे पाइथन में उपयोग किया जाता है और डीबग में मदद के लिए प्रिंट स्टेटमेंट लगाया जाता है, इसलिए यह मेरे लिए अच्छा है। धन्यवाद –

3

सबसे आसान एक:

 Console.WriteLine("Array : "); 
     Console.WriteLine("[{0}]", string.Join(", ", <yourarray>)); 
0

मैं मैथ्यू वाटसन ने विस्तार विधि जवाब upvoted है, लेकिन अगर आप माइग्रेट कर रहे/अजगर से आ रही जाकर, आप इस तरह के एक विधि उपयोगी हो सकते हैं:

class Utils 
{ 
    static void dump<T>(IEnumerable<T> list, string glue="\n") 
    { 
     Console.WriteLine(string.Join(glue, list.Select(x => x.ToString()))); 
    } 
} 

-> यह प्रदान किए गए विभाजक का उपयोग करके किसी संग्रह को प्रिंट करेगा। यह काफी सीमित है (नेस्टेड संग्रह?)।

एक स्क्रिप्ट के लिए (यानी एक सी # कंसोल एप्लिकेशन जिसमें केवल प्रोग्राम शामिल है।सीएस, और अधिकांश चीजें Program.Main में होती हैं) - यह ठीक हो सकता है।

1

यह सबसे आसान तरीका है कि आप स्ट्रिंग को सरणी का उपयोग करके प्रिंट कर सकते हैं !!!

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace arraypracticeforstring 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      string[] arr = new string[3] { "Snehal", "Janki", "Thakkar" }; 

      foreach (string item in arr) 
      { 
       Console.WriteLine(item.ToString()); 
      } 
      Console.ReadLine(); 
     } 
    } 
}