তালিকা থেকে আইইনামেবল ফরম্যাটে রূপান্তর করুন


99
IEnumerable<Book> _Book_IE
List<Book> _Book_List

আমি কিভাবে রূপান্তর করতে অনুক্রমে করব _Book_Listমধ্যে IEnumerableবিন্যাস?


6
কমপক্ষে তার একটি সম্মেলন আছে, তাই না?
Femaref

4
লোকেরা ভাবছেন যে কেন কার্কের মন্তব্যে এতগুলি "আপস" রয়েছে, কারণ আপনি নিজের ভেরিয়েবলটিকে নিজের পছন্দ মতো নাম রাখতে পারবেন না! এর জন্য সম্মেলনগুলি রয়েছে এবং আপনি এগুলি অনুসরণ করার জন্য অত্যন্ত প্রস্তাব দেওয়া হয়, যাতে আপনার কোডটি স্পষ্ট এবং বোধগম্য হয়, এটি স্ট্যাক-ওভারফ্লো বা গিটহাবের মতো জায়গাগুলিতে আপনাকে সহায়তা করার চেষ্টা করা লোকদের সহায়তা করবে! আরও তথ্যের জন্য বইটি পড়ুন: রবার্ট সি মার্টিনের ক্লিন কোড
কাদেম মোহাম্মদ

4
... এবং স্মুরফ নামকরণ বিরোধী ধাঁচের শিকার না হয়ে নামকরণের সম্মেলনটি কীভাবে করবেন? devcards.io/smurf-naming-convention সাধারণত একটি নেমস্পেস যেখানে প্রয়োজন সেখানে নির্দিষ্টতা সরবরাহ করতে পারে।
মীডক

যখন আপনি একটি Linq এক্সপ্রেশনে .Reverse () ব্যবহার করতে হবে ienumerable করার Convertint বিশেষভাবে উপকারী
Zuabros

উত্তর:


152

আপনার এটি রূপান্তর করার দরকার নেই। ইন্টারফেস List<T>প্রয়োগ করে IEnumerable<T>তাই এটি ইতিমধ্যে একটি গণনাকারী।

এর অর্থ হ'ল নিম্নলিখিতটি রাখা ভাল is

public IEnumerable<Book> GetBooks()
{
    List<Book> books = FetchEmFromSomewhere();    
    return books;
}

পাশাপাশি:

public void ProcessBooks(IEnumerable<Book> books)
{
    // do something with those books
}

যা আহবান করা যেতে পারে:

List<Book> books = FetchEmFromSomewhere();    
ProcessBooks(books);

66

আপনি এসেম্বলি সিস্টেম.কোর এবং সিস্টেমটিতে লভ্য নামকরণের স্থানটি অসমর্থনীয় এক্সটেনশন পদ্ধতিটি ব্যবহার করতে পারেন:

List<Book> list = new List<Book>();
return list.AsEnumerable();

এটি, এমএসডিএন লিঙ্কে যেমন বলা হয়েছে তা সংকলন-সময়ে তালিকার ধরণের পরিবর্তন করবে। এটি কেবলমাত্র আমাদের প্রয়োজনীয় সংগ্রহগুলি গণনা করার জন্য আপনাকে সুবিধা দেবে (এর জন্য এমএসডিএন উদাহরণ দেখুন)।


দেখতে সহজ দেখায় তবে রূপান্তর করার সহজতম উপায় করে। ধন্যবাদ
worশ্বর খানাল

4
আপনি যদি সংগ্রহে কিছু যুক্ত করার কথা মনে করেন না তবে আপনার ব্যবহার / ফিরিয়ে নেওয়া উচিত n
এজেড_


11

যতদূর আমি জানি List<T>সরঞ্জামগুলি IEnumerable<T>। এর অর্থ হ'ল আপনাকে কোনও কিছু রূপান্তর বা কাস্ট করতে হবে না।


4
এটা নির্ভর করে. আপনি যদি একটি সেট করতে চেষ্টা করুন IEnumerable<IList<obj>>একটি থেকে IEnumerable<IEnumerable<obj>>এরপর থেকে এটি দ্বিতীয় প্রথম এক থেকে উত্তরাধিকারী নেই কম্পাইলার ত্রুটি দেয়।
ইমাবোরসা

4
IEnumerable<Book> _Book_IE;
List<Book> _Book_List;

যদি এটি জেনেরিক বৈকল্পিক হয়:

_Book_IE = _Book_List;

আপনি যদি নন-জেনেরিককে রূপান্তর করতে চান:

IEnumerable ie = (IEnumerable)_Book_List;

5
আপনার এখানে কাস্টের দরকার নেই।
জন স্কিটি

4
আপনি যদি নন-জেনেরিক ইন্টারফেস থেকে নির্দিষ্ট পদ্ধতিগুলি চান তবে তাদের কিছু যেমন সুস্পষ্টভাবে প্রয়োগ করা হয়েছে, বা আমি কি এখানে ভুল পথে রয়েছি?
Femaref

0

তোমার দরকার

using System.Linq;

IEnumerableআপনার বিকল্প ব্যবহার করতে List

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