पूर्णांक के सरणी को अल्पविराम से विभाजित स्ट्रिंग में परिवर्तित करें


273

यह एक साधारण प्रश्न है; मैं C # में नौसिखिया हूं, मैं निम्नलिखित प्रदर्शन कैसे कर सकता हूं

  • मैं पूर्णांक की एक सरणी को अल्पविराम से अलग स्ट्रिंग में परिवर्तित करना चाहता हूं।

मेरे पास है

int[] arr = new int[5] {1,2,3,4,5};

मैं इसे एक स्ट्रिंग में बदलना चाहता हूं

string => "1,2,3,4,5"

जवाबों:


539
var result = string.Join(",", arr);

यह निम्न अधिभार का उपयोग करता है string.Join:

public static string Join<T>(string separator, IEnumerable<T> values);

आपको इस मामले में स्पष्ट सामान्य तर्क पारित करने की आवश्यकता नहीं है। इसका अनुमान लगाया जाएगा।
लेप्पी

6
प्री .NET 4 स्ट्रिंग। जॉइन (",", Array.ConvertAll (गिरफ्तारी, i => i.ToString ()))
TPAKTOPA

क्या इसका उल्टा करने का एक सरल तरीका है? स्ट्रिंग लें और इसे एक सरणी में डालें?
Kory

3
@ कोरी: स्ट्रिंग का उपयोग कर। नमूना विधि, देखें msdn.microsoft.com/en-us/library/…
चेंग चेन

132

.NET 4

string.Join(",", arr)

.NET पहले

string.Join(",", Array.ConvertAll(arr, x => x.ToString()))

17
प्री-.NET4 संस्करण के लिए धन्यवाद!
kdenney

1
सिर्फ एहसास हुआ कि मैं .net 4 संस्करण का उपयोग नहीं कर सकता और मुझे समझ नहीं आया कि जब तक मैंने आपका उत्तर नहीं देखा, तब तक मुझे कोई त्रुटि क्यों हुई, धन्यवाद।
लुइस टेललेज़

मैं .NET 4.5 का उपयोग कर रहा हूं। मैंने एक स्ट्रिंग के साथ अल्पविराम से अलग संख्या को समेटने की कोशिश की। मुझे यह कहते हुए एक त्रुटि हुई कि "स्ट्रिंग को [] चार में परिवर्तित नहीं कर सकता"। तो पहले वाले संस्करण ने त्रुटिपूर्ण रूप से काम किया।
प्रशांत जी

10
int[] arr = new int[5] {1,2,3,4,5};

आप इसके लिए Linq का उपयोग कर सकते हैं

String arrTostr = arr.Select(a => a.ToString()).Aggregate((i, j) => i + "," + j);

5

इस कार्य को आसान बनाने के लिए आपके पास विस्तार विधियों की एक जोड़ी हो सकती है:

public static string ToDelimitedString<T>(this IEnumerable<T> lst, string separator = ", ")
{
    return lst.ToDelimitedString(p => p, separator);
}

public static string ToDelimitedString<S, T>(this IEnumerable<S> lst, Func<S, T> selector, 
                                             string separator = ", ")
{
    return string.Join(separator, lst.Select(selector));
}

तो अब बस:

new int[] { 1, 2, 3, 4, 5 }.ToDelimitedString();

3

Aggregateपूर्णांक के सरणी को अल्पविराम से अलग स्ट्रिंग में परिवर्तित करने के लिए LINQ विधि का उपयोग करें

var intArray = new []{1,2,3,4};
string concatedString = intArray.Aggregate((a, b) =>Convert.ToString(a) + "," +Convert.ToString( b));
Response.Write(concatedString);

आउटपुट होगा

1,2,3,4

यह एक समाधान है जिसे आप उपयोग कर सकते हैं यदि आपने .net 4 स्थापित नहीं किया है।


यह स्ट्रिंग के संघनन के कारण खराब प्रदर्शन करता है, हालांकि
साइमन बेलेंगर

हाँ इसका खराब प्रदर्शन होगा, लेकिन .net 4.0 से पहले String.join केवल parameter.Thus के रूप में स्ट्रिंग सरणी उस मामले में हम भी स्ट्रिंग में परिवर्तित करने की आवश्यकता है हम ToString उपयोग कर सकते हैं यह बेहतर प्रदर्शन लेकिन वहाँ अशक्त अपवाद की समस्या है ले
सुशील पांडेय
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.