আমার ডোমেইনে জিনিসগুলির তালিকাসমূহের সত্ত্বা থাকলে, সেগুলিকে আইএললিস্ট বা আইনিউমারেবল হিসাবে প্রকাশ করা উচিত? উদাহরণস্বরূপ অর্ডারলাইনগুলির একটি গুচ্ছ রয়েছে।
আমার ডোমেইনে জিনিসগুলির তালিকাসমূহের সত্ত্বা থাকলে, সেগুলিকে আইএললিস্ট বা আইনিউমারেবল হিসাবে প্রকাশ করা উচিত? উদাহরণস্বরূপ অর্ডারলাইনগুলির একটি গুচ্ছ রয়েছে।
উত্তর:
IEnumerable<T>
এমন কিছু আইটেমের প্রতিনিধিত্ব করে যা আপনি পুনরাবৃত্তি করতে পারেন (উদাহরণস্বরূপ, অগ্রণী ব্যবহার করে), যদিও whereas IList<T>
এমন একটি সংগ্রহ যা আপনি যোগ করতে বা এখান থেকে সরিয়ে নিতে পারেন।
সাধারণত আপনি এতে অর্ডারলাইন যুক্ত বা অপসারণ করে কোনও অর্ডার পরিবর্তন করতে সক্ষম হতে চান, আপনি সম্ভবত অর্ডার.লাইনস একটি হতে চান IList<OrderLine>
।
এটি বলার পরে, আপনার কিছু ফ্রেমওয়ার্ক ডিজাইনের সিদ্ধান্ত নেওয়া উচিত। উদাহরণস্বরূপ, অর্ডারলাইনের একই উদাহরণটি দুটি পৃথক অর্ডারে যুক্ত করা উচিত? সম্ভবত না. যাতে আপনি অর্ডারলাইনটিকে অর্ডারে যুক্ত করা উচিত কিনা তা যাচাই করতে সক্ষম হতে চাইলে আপনি লাইনের সম্পত্তিটিকে কেবলমাত্র একটি হিসাবে উপস্থাপন করতে IEnumerable<OrderLine>
এবং অ্যাড (অর্ডারলাইন) সরবরাহ করতে এবং (অর্ডারলাইন) পদ্ধতিগুলি পরিচালনা করতে পারেন যা পরিচালনা করতে পারে যে বৈধতা।
IReadOnlyList
বা IReadOnlyCollection
আপনি তালিকার রূপায়িত কিন্তু আপনি যোগ করতে অথবা তা থেকে অপসারণ করতে চান না প্রয়োজন হলে।
IReadOnlyList
কোনও অর্থ হয় না।
বেশিরভাগ সময় আমি আইলিস্টের সাথে আইনিউবারেবলের সাথে যাওয়ার শেষ করি কারণ আইনিম্যারেবলের গণনা পদ্ধতি নেই এবং আপনি কোনও সূচকের মাধ্যমে সংগ্রহটি অ্যাক্সেস করতে পারবেন না (যদিও আপনি লিনকিউ ব্যবহার করছেন তবে আপনি এক্সটেনশন পদ্ধতির সাহায্যে এটি পেতে পারেন)।
ElementAt
পদ্ধতির কী হবে?