আমি সম্প্রতি লিনকিউ ব্যবহার করা বেশ খানিকটা শুরু করেছি এবং লিনকিউ পদ্ধতির কোনওটির জন্য রান-টাইম জটিলতার কোনও উল্লেখ আমি সত্যিই দেখিনি। স্পষ্টতই, এখানে খেলতে অনেকগুলি কারণ রয়েছে, তাই আসুন সমতল IEnumerable
লিনকু-টু-অবজেক্টস সরবরাহকারীর কাছে সীমাবদ্ধ রাখি । এর পরে, ধরে নেওয়া যাক যে Func
নির্বাচক / মিউটর / ইত্যাদি হিসাবে পাস করা যে কোনও একটি সস্তা ও (1) অপারেশন।
এটি সুস্পষ্ট বলে মনে হয় সব একক পাস অপারেশন (যে Select
, Where
, Count
, Take/Skip
,Any/All
, ইত্যাদি) হে (ঢ) যেহেতু তারা শুধুমাত্র একবার ক্রম হেঁটে যাওয়ার প্রয়োজন হবে; যদিও এটি অলসতার সাপেক্ষে।
আরও জটিল ক্রিয়াকলাপগুলির জন্য বিষয়গুলি মার্কিয়ার; সেট মত অপারেটার ( Union
, Distinct
, Except
, ইত্যাদি) কাজ ব্যবহার GetHashCode
ডিফল্টরূপে (আমি যতদূর জানি), তাই এটি তারা একটি হ্যাশ টেবিল ব্যবহার করছেন অভ্যন্তরীণভাবে, উপার্জন এই ক্রিয়াকলাপগুলি হে (ঢ) পাশাপাশি সাধারণভাবে অনুমান করা যুক্তিসঙ্গত বলে মনে হয়। যে সংস্করণগুলি ব্যবহার করে সেগুলি সম্পর্কে কী IEqualityComparer
?
OrderBy
একটি সাজানোর প্রয়োজন হবে, তাই সম্ভবত আমরা ও (এন লগ এন) এ খুঁজছি। যদি এটি ইতিমধ্যে বাছাই করা হয়? আমি যদি বলি OrderBy().ThenBy()
এবং উভয়কে একই কী সরবরাহ করি তবে কীভাবে ?
আমি GroupBy
(এবং Join
) বাছাই বা হ্যাশিং ব্যবহার করে দেখতে পেতাম । ইহা কোনটা?
Contains
এ এর উপর ও (এন) হবে List
, তবে ও (1) এ HashSet
- লিনকিউ কি অন্তর্নিহিত ধারকটি পরীক্ষা করে এটি জিনিসগুলিকে দ্রুততর করতে পারে কিনা তা পরীক্ষা করে?
এবং আসল প্রশ্ন - এখনও অবধি, আমি এটিকে বিশ্বাসের সাথে নিয়েছি যে অপারেশনগুলি পারফরম্যান্স হয়। তবে, আমি কি এটি ব্যাঙ্ক করতে পারি? উদাহরণস্বরূপ, এসটিএল পাত্রে প্রতিটি অপারেশনের জটিলতা স্পষ্টভাবে উল্লেখ করুন specify .NET লাইব্রেরি স্পেসিফিকেশনে লিনকিউ পারফরম্যান্সে কি একই রকম গ্যারান্টি আছে?
আরও প্রশ্ন (মন্তব্যের জবাবে):
ওভারহেড সম্পর্কে সত্যিই চিন্তাভাবনা করা হয়নি, তবে আমি সাধারণ লিনক-টু-অবজেক্টগুলির পক্ষে খুব বেশি হবে বলে আশা করি না। কোডিংহরর পোস্টটি লিনক-টু-এসকিউএল সম্পর্কে কথা বলছে, যেখানে আমি কোয়েরিটি বিশ্লেষণ করতে এবং এসকিউএল তৈরি করা ব্যয় যুক্ত করতে পারে তা বুঝতে পারি - অবজেক্ট সরবরাহকারীর জন্যও কি একই রকম ব্যয় আছে? যদি তা হয় তবে আপনি কি ঘোষণামূলক বা কার্যকরী বাক্য গঠন ব্যবহার করছেন তা ভিন্ন?