.NET 2.0 এ <স্ট্রিং> তালিকায় <int> তালিকা Castালুন


97

আপনি যদি একটি কাস্ট করতে পারেন List<int>থেকে List<string>একরকম?

আমি জানি আমি জিনিসটি লুফে নিতে পারি এবং .ToString () করতে পারি, তবে একটি কাস্ট দুর্দান্ত হবে।

আমি সি # ২.০ এ আছি (সুতরাং লিংক নেই )।

উত্তর:


151

.NET 2.0 এর ConvertAllপদ্ধতি রয়েছে যেখানে আপনি একটি রূপান্তরকারী কার্যক্রমে যেতে পারেন:

List<int>    l1 = new List<int>(new int[] { 1, 2, 3 } );
List<string> l2 = l1.ConvertAll<string>(delegate(int i) { return i.ToString(); });

117

২০১০-র জন্য আপডেট হয়েছে

List<int> l1 = new List<int>(new int[] { 1,2,3 } );
List<string> l2 = l1.ConvertAll<string>(x => x.ToString());

6
ধন্যবাদ! এটি আমার বেশ কয়েকবার সময় সাশ্রয় করেছে
— স্টিভ ফ্রেঞ্চ

4
না, লম্বডাস সি # 3.0 তে প্রবর্তিত হয়েছিল সুতরাং এটি 2.0 তে কাজ করবে না।
— লুক

আমি খুঁজে পেয়েছি যে এটি কমপক্ষে .NET 3.0 ইনস্টল হওয়া অবধি VS2008 এবং .NET 2.0 এর সাথে কাজ করে। দেখতে stackoverflow.com/questions/3341846/...
— igelineau

4
লোকগুলিকে .NET সংস্করণ এবং সি # সংস্করণের মধ্যে পার্থক্য করা উচিত। যেহেতু তীরটি x => x.ToString()একই ধরণের আইএল হিসাবে সংকলিত হয়েছে তত delegate(int x) { return x.ToString(); }গুরুত্বপূর্ণ বিষয়টি হল একটি সি # সংকলক (সি # সংস্করণ) যা জানেন তা =>। ফ্রেমওয়ার্ক এবং রানটাইম (। নেট সংস্করণ) এর জন্য কোনও বিশেষ বৈশিষ্ট্যের প্রয়োজন নেই, সুতরাং নেট নেট 2.0 এখানে ভাল fine
— জেপ্পে স্টিগ নীলসেন

আপনি খাঁজতে পারেন <string>তা সরিয়ে দেয় এবং এটি এখনও কার্যকর হয়। এটি কেবল তৈরি করা হচ্ছেl1.ConvertAll(x => x.ToString());
— 0 ʙᴀᴋᴇʀ

8

সি # 2.0 কি সক্ষম List<T>.Convert? যদি তা হয়, তবে আমি মনে করি আপনার সেরা অনুমান একটি প্রতিনিধি সহ এটি ব্যবহার করা হবে:

List<int> list = new List<int>();
list.Add(1);
list.Add(2);
list.Add(3);
list.Convert(delegate (int i) { return i.ToString(); });

এই লাইন বরাবর কিছু।


গ্লেনের উত্তরকে উপভোগ করুন যা সম্ভবত সঠিক কোড ;-)


6

তুমি ব্যবহার করতে পার:

List<int> items = new List<int>(new int[] { 1,2,3 } );
List<string> s = (from i in items select i.ToString()).ToList();

5

আপনি সক্ষম সরাসরি নিক্ষেপ কোন স্পষ্ট বা অন্তর্নিহিত ঢালাই স্ট্রিং int- এ থেকে বিদ্যমান হবে না, এটা হবে আছে .ToString () যেমন জড়িত একটি পদ্ধতি: -

foreach (int i in intList) stringList.Add(i.ToString());

সম্পাদনা করুন - বা অন্যরা যেমন উজ্জ্বলতার সাথে ইঙ্গিত করেছে, তেমনই ব্যবহার করুন INList.ConvertAll (প্রতিনিধি (int i) {রিটার্ন i.ToString ();}); তবে পরিষ্কারভাবে আপনাকে এখনও ব্যবহার করতে হবে। একটি নিক্ষেপ


4
জেনেরিক ধরণের মধ্যে একটি কাস্টের অস্তিত্বের সাথে প্রক্ষেপণের মধ্যে কাস্ট করার দক্ষতার কোনও সম্পর্ক নেই। ইন্টারনেট, এমনকি যদি intপরোক্ষভাবে বা স্পষ্টভাবে পরিবর্তনীয় ছিল string, তার মানে এই নয় যে List<int>একটি অন্তর্নিহিত বা স্পষ্ট রূপান্তর হয়েছে List<string>।
— অ্যাডাম রবিনসন

1

আপনাকে একটি নতুন তালিকা তৈরি করতে হবে। অন্তর্নিহিত বিট উপস্থাপনাগুলি List<int>এবং List<string>সম্পূর্ণ বেমানান - একটি 64-বিট প্ল্যাটফর্মে, উদাহরণস্বরূপ, পৃথক সদস্যরা এমনকি একই আকারের নয়।

তাত্ত্বিকভাবে এটির List<string>মতো আচরণ করা সম্ভব List<object>- এটি আপনাকে সমবায়িকতা এবং বৈপরীত্যের আকর্ষণীয় বিশ্বে স্থান দেয় এবং বর্তমানে সি # বা ভিবি.এনইটি সমর্থন করে না।


@ কার্ট :> তাত্ত্বিকভাবে একটি তালিকা <স্ট্রিং> কে একটি তালিকা হিসাবে দেখানো << বিষয়> -> এটি আপনাকে আবেগময় ও বিপরীতার উত্তেজনাপূর্ণ বিশ্বে নিয়ে যায় এবং>> বর্তমানে সি # বা> ভিবি দ্বারা সমর্থিত নয়। নেট সি # এবং .NET আসলে কোভারিয়েন্সকে সমর্থন করে। শুধু জেনেরিক দিয়ে নয়।
— খ্রিস্টান হেগলিড

1

result = listOfInt.Select(i => i.ToString(CultureInfo.InvariantCulture)).ToList()

পরামিতিগুলির ফলাফলগুলি প্রতিস্থাপন করুন এবং আপনার পরামিতিগুলিতে তালিকাভুক্ত করুন


আমার জন্য সঠিকভাবে ফলাফল কাজ করেছে = listOfInt.Select (i => i.ToString ())। ToList ();
— শারুনাস বিয়েলস্কিস

0

ইনট লিস্ট থেকে স্ট্রিং লিস্টে রূপান্তরকরণ সাধারণ টোস্ট্রিং () ছাড়াও দুটি প্রশংসনীয় উপায়ে করা যেতে পারে। আপনাকে আরও সন্তুষ্ট করে এমন একটি চয়ন করুন।

var stringlist = intlist.Select(x=>""+x).ToList();

বা এছাড়াও:

var stringlist = intlist.Select(x=>$"{x}").ToList();

এবং পরিশেষে সনাতন:

var stringlist = intlist.Select(x=>x.ToString()).ToList();
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.