একটি স্ট্রিংয়ের স্ট্রিংয়ের তালিকা


206

বলুন আপনার একটি রয়েছে:

List<string> los = new List<string>();

এই উন্মাদ ক্রিয়ামূলক বিশ্বে আমরা আজকাল বেঁচে থাকি যার মধ্যে এইগুলির মধ্যে কোনটি এই বিষয়গুলিকে একত্রে যুক্ত করে একটি স্ট্রিং তৈরি করার পক্ষে সেরা:

String.Join(String.Empty, los.ToArray());

StringBuilder builder = new StringBuilder();
los.ForEach(s => builder.Append(s));

string disp = los.Aggregate<string>((a, b) => a + b);

বা সরল পুরাতন স্ট্রিংবিল্ডার ফোরচ

নাকি এর চেয়ে ভাল উপায় আছে?


9
নেট 4 মত দেখায় এছাড়াও, একটি string.Join (স্ট্রিং, IEnumerable <স্ট্রিং>) অন্তর্ভুক্ত করা হবে লেট আপনি ToArray () লাফালাফি msdn.microsoft.com/en-us/library/dd783876.aspx
লুক

উত্তর:


289

আমি বিকল্প বিকল্প দিয়ে যেতে হবে:

String.Join(String.Empty, los.ToArray());

আমার যুক্তি হ'ল যোগদানের পদ্ধতিটি সেই উদ্দেশ্যে লেখা হয়েছিল। আসলে আপনি যদি রিফ্লেক্টরের দিকে তাকান তবে আপনি দেখতে পাবেন যে অনিরাপদ কোডটি সত্যই এটি অপ্টিমাইজ করার জন্য ব্যবহৃত হয়েছিল। অন্য দু'জনও কাজ করেছেন, তবে আমি মনে করি যে এই কাজের জন্য জয়েন ফাংশনটি লেখা হয়েছিল, এবং আমি অনুমান করব, সবচেয়ে দক্ষ। যদিও আমি ভুল হতে পারি ...

@ নূরী ইলমজ ব্যতীত .ToArray(), তবে এটি। নেট 4+:

String.Join(String.Empty, los);

জি! আমি প্রথমে এই বিকল্পটি দেখতে পেলাম না - এটি ঠিক অতীতে পড়ুন।
জোয়েল কোহোর্ন

2
স্ট্রিংবিল্ডারের চেয়ে 3 গুণ দ্রুত? বাহ, আমি বুঝতে পেরেছিলাম এটি দ্রুততর হবে, বুঝতে পারিনি যে কত দ্রুত। এটি পয়েন্টার ব্যবহার করে এটি অনিরাপদ কোডে সম্পন্ন হয়েছে, যদিও এটি বোধগম্য হয় sense
বিফ্রি

8
চমৎকার! কেবলমাত্র মন্তব্য: যোগদানের জন্য লস.ToArray () দরকার নেই, কারণ তালিকা <T> আইনুমুয়াল <T> কাস্ট করতে পারে।
নুরি ইলিমাজ

8
@ নুরি: এই প্রশ্নটি আগে, 08 সালে জিজ্ঞাসা করা হয়েছিল। নেট 4 আউট ছিল। আইওনামেবল <T> লাগে এমন ওভারলোডটি নেট
নেটটিতে

2
স্ট্রিং.জাইন স্ট্রিংয়ের সাথে মিলিত। কনক্যাটটি সোনালি। উদা: 'স্ট্রিং.কনকাট ("{", স্ট্রিং.জয়াইন (",", এম_ডাটা)), "}");'
কর্নমুফিন

51
string.Concat(los.ToArray());

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


18

আপনি নেট নেট ৪.০ ব্যবহার করলে আপনি সর্ট উপায় ব্যবহার করতে পারেন:

String.Join<string>(String.Empty, los);

10

স্ট্রিং.জয়াইন () বেশ দ্রুত প্রয়োগ করা হয়েছে, এবং আপনার ইতিমধ্যে প্রশ্নে থাকা স্ট্রিংগুলির সংগ্রহ রয়েছে, সম্ভবত এটি সেরা পছন্দ। সর্বোপরি, এটি চিৎকার করে তোলে "আমি স্ট্রিংয়ের তালিকায় যোগ দিচ্ছি!" সবসময় সুন্দর.



5

আমার ভোট স্ট্রিং.জয়াইন

ল্যাম্বদা মূল্যায়ন এবং অস্থায়ী ফাংশন তৈরি করার প্রয়োজন নেই, কম ফাংশন কল, কম স্ট্যাক পুশিং এবং পপিং।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.