পূর্ণসংখ্যার অ্যারেকে কমা-বিচ্ছিন্ন স্ট্রিংয়ে রূপান্তর করুন


273

এটি একটি সাধারণ প্রশ্ন; আমি সি # তে একজন নবাগত, আমি কীভাবে নিম্নলিখিতগুলি সম্পাদন করতে পারি

  • আমি পূর্ণসংখ্যার অ্যারেটিকে কমা-বিচ্ছিন্ন স্ট্রিংয়ে রূপান্তর করতে চাই।

আমার আছে

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
প্রাক। নেট 4 স্ট্রিং.জয়েন (",", অ্যারে.কনভার্টএল (আরআর, i => আই.টাস্ট্রিং ()))
টিপাক্টোপা

এর বিপরীত করার কোনও সহজ উপায় আছে কি? স্ট্রিংটি নিয়ে একটি অ্যারেতে রাখবেন?
কোরি

3
@Kory: String.Split পদ্ধতি ব্যবহার করে দেখুন msdn.microsoft.com/en-us/library/...
চেঙ চেন

132

.NET 4

string.Join(",", arr)

.NET আগে

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

17
প্রাক .NET4 সংস্করণের জন্য ধন্যবাদ!
কেডননি

1
আমি বুঝতে পেরেছি যে আমি .net 4 সংস্করণটি ব্যবহার করতে পারছি না এবং আমি বুঝতে পারি না কেন আমি আপনার উত্তরটি না দেখছি ততক্ষণ আমার ত্রুটি ঘটছে, ধন্যবাদ।
লুইস টেললেজ

আমি .NET 4.5 ব্যবহার করছি। আমি একটি স্ট্রিং দিয়ে কমা বিভাজিত সংখ্যাগুলি সংহত করার চেষ্টা করেছি। "স্ট্রিং [] কে চরে রূপান্তর করতে পারে না" বলে আমি একটি ত্রুটি পেয়েছি। সুতরাং আগের সংস্করণটি নির্দ্বিধায় কাজ করেছিল।
প্রশান্ত জি

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

আপনি এর জন্য লিনক ব্যবহার করতে পারেন

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

আপনি। নেট 4 ইনস্টল না করে থাকলে আপনি এটি সমাধান করতে পারেন।


এটি স্ট্রিং কনটেন্টেশনের কারণে খারাপভাবে সম্পাদন করে, যদিও
সাইমন বেলঞ্জার

হ্যাঁ এটা দুর্বল সঞ্চালন হবে কিন্তু .net 4.0 সামনে String.join শুধুমাত্র parameter.Thus স্ট্রিং অ্যারের যে ক্ষেত্রে আমরা স্ট্রিং রূপান্তর করতে হবে স্থায়ী করা হবে আমরা ToString ব্যবহার করতে পারেন এটা ভাল সঞ্চালন কিন্তু নাল ব্যতিক্রমের সমস্যা নিতে
সুশীল পান্ডে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.