লিনকিউ কোথায় (..) এবং ফাইন্ডএল (..) পার্থক্য করে কীভাবে কেউ ব্যাখ্যা করতে পারে? তারা দু'জনেই একই কাজ করছে বলে মনে হচ্ছে ...
লিনকিউ কোথায় (..) এবং ফাইন্ডএল (..) পার্থক্য করে কীভাবে কেউ ব্যাখ্যা করতে পারে? তারা দু'জনেই একই কাজ করছে বলে মনে হচ্ছে ...
উত্তর:
FindAll()এই List<T>ধরণের একটি ফাংশন , এটি কোনও লিনকিউ এক্সটেনশন পদ্ধতির মতো নয় Where। লিনকিউ এক্সটেনশন পদ্ধতিগুলি যে কোনও প্রকার প্রয়োগকারী ক্ষেত্রে কাজ করে IEnumerable, যেখানে FindAllকেবলমাত্র List<T>উদাহরণগুলি ব্যবহার করা যেতে পারে (বা এটির উত্তরাধিকারী শ্রেণীর উদাহরণগুলি অবশ্যই)।
অতিরিক্তভাবে, এগুলি প্রকৃত উদ্দেশ্যে পৃথক। যখন বস্তুটি গণনা করা হয় অন-চাহিদা অনুসারে সম্পাদিত হয় Whereতার একটি উদাহরণ দেয় IEnumerable।FindAllList<T>অনুরোধকৃত উপাদানগুলি সহ একটি নতুন ফিরিয়ে দেয় । FindAllআরও Where(...).ToList()একটি উদাহরণ কল করার মত IEnumerable।
আমার কাছে সবচেয়ে বড় পার্থক্য হ'ল .ফিনডলও .Net 2.0 এ উপলব্ধ। নেট নেট in.৫ এ প্রোগ্রাম করার মতো বিলাসিতা আমার কাছে সবসময় নেই, তাই আমি নেট জেনেরিক সংগ্রহের 'নেটিভ' পদ্ধতিগুলি মনে করার চেষ্টা করি।
এটি বেশ কয়েকবার ঘটেছিল যে আমি ইতিমধ্যে উপলব্ধ তালিকা পদ্ধতিটি নিজে প্রয়োগ করেছি কারণ আমি এটি লিনকিউ করতে পারি না।
এই ক্ষেত্রে আমি যেটি কাজে পেলাম তা হ'ল ভিএস ২০০৮ ব্যবহার করে, আমি টাইপ ইনফারেন্স এবং ল্যাম্বদা সিনট্যাক্স ব্যবহার করতে পারি । এগুলি সংকলক বৈশিষ্ট্য, ফ্রেমওয়ার্ক বৈশিষ্ট্য নয়। এর অর্থ আমি এটি লিখতে পারি এবং এখনও। নেট 2.0: এর মধ্যে থাকতে পারি
var myOddNums = myNums.FindAll(n => n%2==1);
তবে আপনার কাছে যদি লিনকিউ উপলব্ধ থাকে তবে মুলতুবি কার্যকরকরণ এবং তাত্ক্ষণিক মৃত্যুদন্ড কার্যকর করার মধ্যে পার্থক্য রাখা গুরুত্বপূর্ণ।
যদি আমি সঠিকভাবে স্মরণ করি তবে মূল পার্থক্যটি (তারা এর উপরে প্রয়োগ করা ছাড়াও: IEnumerable<T>বনাম List<T>) হ'ল Whereস্থগিত কার্যকরকরণ কার্যকর করে, যেখানে এটি আপনার প্রয়োজন হওয়া অবধি প্রকৃতপক্ষে অনুসন্ধানটি করে না - উদাহরণস্বরূপ ফরচ লুপে এটি ব্যবহার করে। FindAllতাৎক্ষণিকভাবে কার্যকর করার পদ্ধতি।
আমি 80K অবজেক্টের একটি তালিকায় কিছু পরীক্ষার করেনি এবং দেখা গেছে যে Find()দ্রুত একটি ব্যবহার 1000% পর্যন্ত হতে পারে Whereসঙ্গে FirstOrDefault()। আমি জানি না যে প্রতিটি কলের আগে এবং পরে টাইমার পরীক্ষা করা পর্যন্ত। কখনও কখনও এটি একই সময় ছিল, অন্যান্য সময় এটি দ্রুত ছিল।