আমি কীভাবে একটি তালিকাটিকে সি # তে স্ট্রিংয়ে রূপান্তর করব?
আমি যখন toString
কোনও তালিকা অবজেক্টে চালিত করি তখন আমি পাই:
System.Collections.Generic.List`1 [System.String]
আমি কীভাবে একটি তালিকাটিকে সি # তে স্ট্রিংয়ে রূপান্তর করব?
আমি যখন toString
কোনও তালিকা অবজেক্টে চালিত করি তখন আমি পাই:
System.Collections.Generic.List`1 [System.String]
উত্তর:
হতে পারে আপনি চেষ্টা করছেন
string combindedString = string.Join( ",", myList.ToArray() );
আপনি তালিকার উপাদানগুলিকে যেভাবে বিভক্ত করতে চান তা দিয়ে "," প্রতিস্থাপন করতে পারেন।
সম্পাদনা করুন : মন্তব্যে উল্লেখ হিসাবে আপনিও করতে পারেন
string combindedString = string.Join( ",", myList);
রেফারেন্স:
Join<T>(String, IEnumerable<T>)
Concatenates the members of a collection, using the specified separator between each member.
আমি আমার অন্ত্র অনুভূতির সাথে যাচ্ছি এবং ধরে নিচ্ছি যে আপনি ToString
তালিকার প্রতিটি উপাদানকে ডাকার ফলাফলকে সম্মতি জানাতে চান ।
var result = string.Join(",", list.ToArray());
আপনি ব্যবহার করতে পারেন string.Join
:
List<string> list = new List<string>()
{
"Red",
"Blue",
"Green"
};
string output = string.Join(Environment.NewLine, list.ToArray());
Console.Write(output);
ফলাফলটি হবে:
Red
Blue
Green
এর বিকল্প হিসাবে Environment.NewLine
, আপনি এটিকে আপনার পছন্দের স্ট্রিং ভিত্তিক লাইন-বিভাজকের সাথে প্রতিস্থাপন করতে পারেন।
আপনি যদি সাধারণ যোগদানের চেয়ে কিছুটা জটিল কিছু চান তবে আপনি লিনকুই ব্যবহার করতে পারেন
var result = myList.Aggregate((total, part) => total + "(" + part.ToLower() + ")");
["এ", "বি", "সি"] নেবে এবং "(ক) (খ) (গ)" উত্পাদন করবে
String.Join(" ", myList)
বা String.Join(" ", myList.ToArray())
। প্রথম যুক্তিটি সাবস্ট্রিংগুলির মধ্যে বিভাজক।
var myList = new List<String> { "foo","bar","baz"};
Console.WriteLine(String.Join("-", myList)); // prints "foo-bar-baz"
আপনার .NET এর সংস্করণ অনুসারে আপনাকে প্রথমে তালিকায় ToArray () ব্যবহার করতে হতে পারে ..
আপনার কাছে একটি আছে List<string>
- তাই যদি আপনি এগুলি সম্মিলিত করতে চান তবে এর মতো কিছু
string s = string.Join("", list);
(কমপক্ষে .NET 4.0 এ) কাজ করবে। প্রথম প্যারামিটারটি ডিলিমিটার। সুতরাং আপনি কমা-সীমানা ইত্যাদি করতে পারে
আপনি তালিকা তৈরির পরিবর্তে স্ট্রিংবিল্ডার ব্যবহার করে চলমান সংক্ষেপণ করতেও নজর রাখতে পারেন।
.ToString()
রেফারেন্স ধরনের জন্য পদ্ধতি সাধারণত ফিরে সমাধান করা System.Object.ToString()
যদি না আপনি একটি উদ্ভূত ধরনের ওভাররাইড (সম্ভবত বিল্ট-ইন ধরনের জন্য এক্সটেনশন পদ্ধতি ব্যবহার করে)। এই পদ্ধতির জন্য ডিফল্ট আচরণ হ'ল ধরণের নামটি আউটপুট করা। সুতরাং আপনি যা দেখছেন তা প্রত্যাশিত আচরণ।
আপনি string.Join(", ", myList.ToArray());
এটি অর্জন করার মতো কিছু চেষ্টা করতে পারেন । এটি একটি অতিরিক্ত পদক্ষেপ, তবে এটি System.Collections.Generic.List<T>
কিছুটা সহজ করার জন্য এটি একটি এক্সটেনশন পদ্ধতিতে রাখা যেতে পারে । এটার মতো কিছু:
public static class GenericListExtensions
{
public static string ToString<T>(this IList<T> list)
{
return string.Join(", ", list);
}
}
(দ্রষ্টব্য যে এটি নিখরচায় এবং অনির্ধারিত কোড। এই মুহূর্তে আমার কাছে কোনও সংকলক কার্যকর নেই So সুতরাং আপনি এটির সাথে কিছুটা পরীক্ষা করতে চাইবেন))
এটি বলা শক্ত, তবে সম্ভবত আপনি এর মতো কিছু খুঁজছেন:
var myString = String.Join(String.Empty, myList.ToArray());
এটি সুস্পষ্টভাবে তালিকার প্রতিটি আইটেমের ToString () পদ্ধতিতে কল করবে এবং তাদেরকে সম্মতি জানাবে।
String.Concat()
একই জিনিস আরও ভাল অর্জন করবে।
আপনি একটি বড় দীর্ঘ স্ট্রিং মধ্যে একটি তালিকায় আইটেমগুলি ঘুরে বেরাচ্ছেন, তাহলে এই কাজগুলো করুন: String.Join("", myList)
। ফ্রেমওয়ার্কের কিছু পুরানো সংস্করণ আপনাকে দ্বিতীয় প্যারামিটার হিসাবে কোনও IEnumerable পাস করার অনুমতি দেয় না, তাই .ToArray () কল করে আপনার তালিকাটি একটি অ্যারেতে রূপান্তর করতে হতে পারে calling
আপনার প্রশ্নের সরাসরি উত্তর হ'ল String.Join
অন্যরা যেমন উল্লেখ করেছে।
তবে আপনার যদি কিছু হেরফের দরকার হয় তবে আপনি ব্যবহার করতে পারেন Aggregate
:
List<string> employees = new List<string>();
employees.Add("e1");
employees.Add("e2");
employees.Add("e3");
string employeesString = "'" + employees.Aggregate((x, y) => x + "','" + y) + "'";
Console.WriteLine(employeesString);
Console.ReadLine();
এই পদ্ধতিটি আমাকে পাঠ্য ফাইল থেকে ডেটা পুনরুদ্ধার করার চেষ্টা করেছিল এবং অ্যারেতে এটি সংরক্ষণ করে তারপরে এটি স্ট্রিংকে উপলভ্য হিসাবে নির্ধারণ করে।
string[] lines = File.ReadAllLines(Environment.CurrentDirectory + "\\Notes.txt");
string marRes = string.Join(Environment.NewLine, lines.ToArray());
আশা করি কাউকে সাহায্য করতে পারেন !!!!
উপরের সমস্ত উত্তর নেস্টেড তালিকার জন্য কাজ করে না ।