স্ট্রিং অ্যারে স্ট্রিংয়ে রূপান্তর করুন


154

আমি স্ট্রিং অ্যারেটিকে একটি স্ট্রিংয়ে রূপান্তর করতে চাই।

string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";

আমি "হ্যালো ওয়ার্ল্ড!" এর মতো কিছু পেতে চাই

উত্তর:


279
string[] test = new string[2];

test[0] = "Hello ";
test[1] = "World!";

string.Join("", test);

3
+1 -
@

ধন্যবাদ। আমি পিছনের স্থানটি লক্ষ্য করিনি, যদিও আমি অনুলিপি করে আমার উত্তরে এটি আটকিয়েছি।
ডেভ ওয়ার্ড

2
আমার স্ট্রিংগুলির (কোমা এবং স্পেস) মধ্যে একটি বিভাজক স্থাপন করার দরকার ছিল তাই আমি ব্যবহার করেছি: var separator = ", "; string.Join(separator , test);
drpawelo

5
দুর্দান্ত উত্তর। যদিও, আমি string.Join(string.Empty, test)একটি ব্যবহার না করে ব্যবহার করার পরামর্শ দেব empty-paranthesis
এখন যার নাম রাখা উচিত নয়।

36

ইতিমধ্যে উল্লিখিত পদ্ধতির ব্যবহারের চেয়ে কিছুটা দ্রুত বিকল্প হ'ল কনক্যাট () পদ্ধতি। এটির মতো খালি ডিলিমিটার প্যারামিটারের প্রয়োজন নেই। উদাহরণ:Join()Join()

string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";

string result = String.Concat(test);

সুতরাং এটি সম্ভবত দ্রুত।


1
Concatভাল, অভ্যন্তরীণ কোডে Joinএটি প্রতিটি আইটেমের পরে পৃথককারী যুক্ত করবে। তবে Concatএই জাতীয় কোডগুলি নেই, এটি তুলনায় সহজ এবং আরও সরাসরি Join। এটি ফিটসট উত্তর।
কাঠবিড়ালি.ডাউনী

22

চেষ্টা করুন:

String.Join("", test);

যা দুটি উপাদানকে একসাথে যোগদান করে একটি স্ট্রিং ফিরিয়ে আনতে হবে। ""ইঙ্গিত দেয় যে আপনি স্ট্রিংগুলি কোনও বিভাজনকারী ছাড়াই একসাথে যোগদান করতে চান।


এটি কি "হ্যালো ওয়ার্ল্ড!" তৈরি করে না? শব্দের মধ্যে কোনও জায়গা ছাড়াই?
jmort253

1
@ jmort253 - "Hello "প্রশ্নের মূল স্ট্রিংয়ের ইতিমধ্যে একটি পিছনের স্থান রয়েছে। যদি স্থানটি ইতিমধ্যে না থাকে তবে আপনি সঠিক হয়ে উঠবেন এবং " "বিভাজক হিসাবে ব্যবহার করা আরও অর্থবোধ করবে।
ডেভিডগ

19

একটি সাধারণ স্ট্রিং.কনক্যাট () আপনার যা প্রয়োজন।

string[] test = new string[2];

test[0] = "Hello ";
test[1] = "World!";

string result = string.Concat(test);

আপনার যদি সেপারেটর (স্পেস, কমা ইত্যাদি) যুক্ত করতে হয় তবে স্ট্রিং.জয়াইন () ব্যবহার করা উচিত।

string[] test = new string[2];

test[0] = "Red";
test[1] = "Blue";

string result = string.Join(",", test);

যদি আপনার স্ট্রিংয়ের চেয়ে মৌলিক উপাদানগুলির সংঘর্ষগুলির সাথে স্ট্রিং অ্যারেতে এটি সম্পাদন করতে হয় oin পৃথককারী হিসাবে কেবল একটি "" (ফাঁকা) যুক্তি দিন। স্ট্রিংবিল্ডার পারফরম্যান্সের জন্য ব্যবহার করা যেতে পারে তবে এটি কোডটি আরও দীর্ঘ করে দেবে।


Concatএবং যদি আপনার কাছে 4 বা তার চেয়ে কম স্ট্রিংগুলি সংমিশ্রিত করতে হয় তবে তার Joinচেয়ে দ্রুত StringBuilder
গুণমান অনুঘটক

3

Aggregate একই জন্য ব্যবহার করা যেতে পারে।

string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string joinedString = test.Aggregate((prev, current) => prev + " " + current);

1
String.Joinএকাধিক অতিরিক্ত স্ট্রিং নির্মিত হওয়ার কারণে এটি প্রয়োগ করা অত্যন্ত ব্যর্থ পদ্ধতি । এর সঠিক বৈকল্পিকের জন্য দয়া করে স্ট্যাকওভারফ্লো.com/ প্রশ্নগুলি / 217805 /… পড়ুন Aggregate
অ্যালেক্সি লেভেনকভ

1
    string ConvertStringArrayToString(string[] array)
    {
        //
        // Concatenate all the elements into a StringBuilder.
        //
        StringBuilder strinbuilder = new StringBuilder();
        foreach (string value in array)
        {
            strinbuilder.Append(value);
            strinbuilder.Append(' ');
        }
        return strinbuilder.ToString();
    }

3
এটি কেবল ম্যানুয়ালি বাস্তবায়ন করছে string.Join(" ", array)(আপনার পেছনের স্থানটি যুক্ত করা বাদে)। কেন কেবল গ্রন্থাগারের একটি ব্যবহার করবেন না?
ডেভিডগ

1
@ ডেভিডগ - অশ্বিনী সম্ভবত নতুন। বিদ্যমান সরঞ্জামগুলি ব্যবহার করতে শিখতে এবং "আমার নিজেরাই এটি করতে হবে" কলেজের মানসিকতা কিছুটা অভ্যস্ত হয়ে যায়। এটা আমার জন্য। অবশেষে, লোকেরা আশ্চর্য হয় যে কেন তাদের সহকর্মীরা তাদের চারপাশে চেনাশোনাগুলি কোড করতে সক্ষম হয় এবং তারপরে তারা কোড লাইব্রেরিতে মানটি দেখে এবং পুনরায় ব্যবহার করে।
jmort253

আমি যা মনে করি তার সবই আমি সাহায্য করার চেষ্টা করেছি..যদি কারওর থেকে ভাল সমাধান পাওয়া যায় তবে আপনি সর্বদা এটি পোস্ট করতে পারেন .. @ জ্যামোর্ট: আমি কাজ করছি 4 বছর হয়েছে ... আমার মানসিকতা নেই আপনি কথা বলছেন ... কেউ নিখুঁত নয় ... অভিজ্ঞতার বছরগুলিতে আপনি শিখছেন .. আপনি এই সত্যটিকে অস্বীকার করবেন না ..
প্রোগ্রামার

@ অশ্বিনী - আপনাকে আপত্তি করার চেষ্টা করছিল না। বিভিন্ন প্রকৌশলী নিয়ে কাজ করার আমার অভিজ্ঞতার ভিত্তিতে @ ডেভিডগের প্রশ্নের উত্তর দেওয়া মাত্র।
jmort253

2
এছাড়াও, সংক্ষিপ্ত স্ট্রিংয়ের শেষে এটিতে অতিরিক্ত স্থান ফাঁকা থাকবে। সুতরাং এটি পুরোপুরি প্রশ্নের পূরণ করে না।
jmort253

0

আমি আমার প্রকল্পটি আরও দ্রুত করতে এই পদ্ধতি ব্যবহার করেছি:

RichTextBox rcbCatalyst = new RichTextBox()
{
    Lines = arrayString
};
string text = rcbCatalyst.Text;
rcbCatalyst.Dispose();

return text;

রিচটেক্সটবক্স.টেক্সট স্বয়ংক্রিয়ভাবে আপনার অ্যারেটিকে একাধিক রেখায় রূপান্তর করবে!


-1

গৃহীত উত্তরে, স্ট্রিং.জয়াইন এর ব্যবহার অনুসারে সেরা অনুশীলন নয়। স্ট্রিং.কনক্যাটটি ব্যবহার করা উচিত ছিল যেহেতু প্রথম আইটেমটিতে ওপিতে একটি পিছনের স্থান অন্তর্ভুক্ত ছিল: "হ্যালো" (নাল ডিলিমিটার ব্যবহার না করে)।

তবে যেহেতু ওপি ফলাফল "হ্যালো ওয়ার্ল্ড!" চেয়েছিল, স্ট্রিং.জাইন এখনও উপযুক্ত পদ্ধতি, তবে এর পরিবর্তে হোয়াইটস্পেসটি পরিবর্তে ডিলিমিটারে স্থানান্তরিত করা উচিত।

// string[] test = new string[2];

// test[0] = "Hello ";
// test[1] = "World!";

string[] test = { "Hello", "World" }; // Alternative array creation syntax 
string result = String.Join(" ", test);

-4

এটার মত:

string str= test[0]+test[1];

আপনি একটি লুপ ব্যবহার করতে পারেন:

for(int i=0; i<2; i++)
    str += test[i];
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.