সি # / লিনক: একটি মৌলিক সংখ্যাটিতে প্রতিটি উপাদানকে ম্যাপিং ফাংশন প্রয়োগ করতে চান?


107

আমি একটি ম্যাপিং ফাংশন (একটি লিনক-সামঞ্জস্যপূর্ণ উপায়ে) ব্যবহার করে একটি IEnumerable এর প্রতিটি উপাদানকে অন্য কোনও কিছুর সাথে রূপান্তর করার উপায় খুঁজছিলাম কিন্তু আমি কিছুই পাইনি।

একটি (খুব সাধারণ) উদাহরণস্বরূপ, এটির মতো কিছু করতে সক্ষম হওয়া উচিত

IEnumerable<int> integers = new List<int>() { 1, 2, 3, 4, 5 };
IEnumerable<string> strings = integers.Transform(i => i.ToString());

তবে আমি কিছুই পাইনি। আমি বলতে চাইছি, এটি একটি এক্সটেনশান পদ্ধতিটি লিখে সম্পূর্ণ সহজ যে এটি সম্পাদন করে (মূলত, এটির জন্য প্রয়োজনীয় সমস্ত উত্স এনুমিরেটরকে একটি নতুন শ্রেণিতে আবৃত করা এবং তারপরে কলগুলি অর্পণ করার জন্য কিছুটা বয়লারপ্লিট কোড লিখতে হবে) তবে আমি আশা করতাম এটি মোটামুটি প্রাথমিক ক্রিয়াকলাপ হতে হবে এবং এটি নিজেকে লিখে চাকাটি পুনর্নবীকরণের মতো মনে হয় - আমি যে অনুভূতিটি ব্যবহার করব সেগুলি অন্তর্নির্মিত উপায় হতে পারে এমন অনুভূতিটি কাঁপতে পারি না এবং আমি কেবল দেখতে অন্ধ হয়ে গেছি been এটা।

সুতরাং ... লিন্কে এমন কিছু আছে যা আমাকে উপরে বর্ণিত অনুসারে কাজ করতে দেয়?


উত্তর:


172

আপনি কেবল Select()এক্সটেনশন পদ্ধতিটি ব্যবহার করতে পারেন :

IEnumerable<int> integers = new List<int>() { 1, 2, 3, 4, 5 };
IEnumerable<string> strings = integers.Select(i => i.ToString());

বা লিনকিউ সিনট্যাক্সে:

IEnumerable<int> integers = new List<int>() { 1, 2, 3, 4, 5 };

var strings = from i in integers
              select i.ToString();

4
আহ! আমি জানতাম একটি উপায় আছে। পুরাতন "বন / গাছ ভিজ্যুয়াল অন্তর্ভুক্তির সমস্যা" এর কিছুটা, আমার ধারণা :)
আন্দ্রে বাউস

2
সচেতন থাকুন যে আপনার মানচিত্রে পার্শ্ব-প্রতিক্রিয়া থাকলে আপনি সমস্যার মধ্যে পড়তে পারেন যেহেতু Select()এটি গণনা না করা অবধি অগত্যা কার্যকর করা হবে না। এটি করার পক্ষে এটি দুর্দান্ত ধারণা নয়, তবে কিছু পরিস্থিতি থাকতে পারে যেখানে ToList()এটির পুরো তালিকাটি মূল্যায়নের জন্য আপনাকে জোর করার প্রয়োজন হতে পারে ।
ডেভ নিকোল

6
একটি ফর্মকে 'লিনক কোয়েরি সিনট্যাক্স' এবং অন্য ফর্মটিকে 'লিনক পদ্ধতি সিনট্যাক্স' বলা কি আরও সঠিক নয়?
রায়ান হারমুথ

2
আসলে উভয়ই লিনাক সিনট্যাক্সের প্রকার, প্রথমটির নাম মেথোড সিনট্যাক্স এবং দ্বিতীয়টির নাম কোয়েরি সিনট্যাক্স। : আরও পড়ুন docs.microsoft.com/en-us/dotnet/csharp/programming-guide/...
মাচাদো

27

আপনি অনুসন্ধান করছেন Selectযা ইনপুট ক্রমটি রূপান্তর করতে ব্যবহার করা যেতে পারে:

IEnumerable<string> strings = integers.Select(i => i.ToString());

9
সুষ্ঠু হওয়ার জন্য এটি এসকিউএল (যেখানে শর্তাবলীর পরবর্তী সেটগুলি সাধারণ পরিভাষা)
মিলিত হওয়ার কথা --ক্লেয়ারওয়য়েন্ট

5
এটা বেশ বিরক্তিকর। আমি কার্যকরী প্রোগ্রামিং শিখার চেষ্টা করছি ... তবে 10 বছর ধরে লিনকিউ শর্তাবলী শিখতে হবে। আমার একটি অনুবাদ গাইড দরকার guide গুগল অনুবাদ হতে পারে বলে আমি ভাবছি ...
ড্যামিয়েন সাওয়ের
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.