.NET / C # - চরকে [] স্ট্রিংয়ে রূপান্তর করুন


406

char[]কোনও স্ট্রিংয়ে পরিণত করার সঠিক উপায় কী ?

ToString()অক্ষরের একটি অ্যারে থেকে পদ্ধতি কৌতুক করতে নেই।

উত্তর:


676
char[] chars = {'a', ' ', 's', 't', 'r', 'i', 'n', 'g'};
string s = new string(chars);

12
খেয়াল করুন যে new string(null)ফলন String.Emptyএবং না null ! আপনি যদি রাখতে চান তবে আপনি nullএকটি এক্সটেনশন পদ্ধতি তৈরি করতে পারেন static string ToStringSafe(this char[] buf) { return buf == null ? null : new string(buf); }
Skod

8
@ এসকড: দেখেছি যে "নতুন" অভিব্যক্তির পক্ষে অবজেক্টের উদাহরণ ব্যতীত অন্য কোনও মান ফেরানো অসম্ভব, এটি কারও কাছে অবাক হওয়ার মতো বিষয় নয়।
মট্টি ভির্ককুনেন

@ মাট্টিভির্ককুনেন: ব্যতিক্রম ছুঁড়ে ফেলাও একটি যুক্তিসঙ্গত কাজ। স্ট্রিং কনস্ট্রাক্টরের কাছে নাল পাস করার জন্য আমি এই আচরণটি অনুমান করেছি।
চার্লস টেলর

81

স্ট্রিংয়ের কনস্ট্রাক্টর ব্যবহার করুন যা একটি গৃহস্থালি গ্রহণ করে []

char[] c = ...;
string s = new string(c);

54
যদি আপনি তিন মিনিট দ্রুত থাকেন তবে প্রশ্নটি জিজ্ঞাসার আগে আপনি উত্তর দিয়েছিলেন!
ডিসিস্টেনহোলজ

1
মিনিট ভুলে যাও এটি মাত্র 17 সেকেন্ড। ঠিক উপরে আমার উত্তরটি আমার সাইটে দ্বিতীয় উচ্চ-ভোট দেওয়া উত্তর। প্রকৃতপক্ষে আমি এখন এখানে আছি কারণ প্রায় 10 বছর পরে কেউ আবার এটি ভোট দিয়েছিল। এবং দুটি উত্তর আসলে কোনও আলাদা নয় ... তবে আমার
পোস্টটি


28

অন্য একটি উপায়:

char[] chars = {'a', ' ', 's', 't', 'r', 'i', 'n', 'g'};
string s = string.Join("", chars);
//we get "a string"
// or for fun:
string s = string.Join("_", chars);
//we get "a_ _s_t_r_i_n_g"

string.Joinকেবল string[]পরিবর্তে গ্রহণ করেchar[]
আকাশ

@ স্কাইটি 91৯ কেবল নয়, আপনি স্ট্রিং ব্যবহার করতে পারেন oin জয়েন <টি> পদ্ধতি এবং যে কোনও টি [] প্যারামিটার হিসাবে টি, টোস্ট্রিং () বলা হবে
বীর্য মিরোশনিকহেঙ্কো

1
তারপরে আপনার লিখতে string.Join<char>("_", chars)হবেstring.Join("_", chars)
sky91

2
সংকলনের সময় চরগুলি টাইপ হিসাবে পরিচিত হিসাবে এটি স্বয়ংক্রিয়ভাবে করে does
বীর্য মিরোশনিখেনকো

এটি অদ্ভুত কারণ আমি <চাপ> টাইপ
আকাশ 91 ই


15

স্ট্রিং কনস্ট্রাক্টর ব্যবহার করুন যা চারারিকে আর্গুমেন্ট, প্রারম্ভিক অবস্থান এবং অ্যারের দৈর্ঘ্যের হিসাবে গ্রহণ করে। সিনট্যাক্স নীচে দেওয়া হয়েছে:

string charToString = new string(CharArray, 0, CharArray.Count());

আমি মনে করি এটিই আমি খুঁজছিলাম। তবে আমি চারআরাই নামের কোনও শ্রেণীর কথা জানতাম না। আপনি কি সম্ভবত এরকম কিছু বোঝাতে চেয়েছিলেন:char[] charArray = new char[5] { 'a', 'b', 'c', '\0', '\0' }; string charsAsString = new string(charArray, 0, 3); // only want part of array.
সানক্যাট 2000

চরআর্রে ক্লাস নয়, কেবল চরের টাইপের পরিবর্তনশীল []
দিলীপ নান্নওয়ারে

13

আরেকটি বিকল্প

char[] c = { 'R', 'o', 'c', 'k', '-', '&', '-', 'R', 'o', 'l', 'l' };
string s = String.Concat( c );

Debug.Assert( s.Equals( "Rock-&-Roll" ) );
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.