.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.