ধরে নিচ্ছি যে ফাইলের উপাদানগুলির ধরণ e হায়ডাররা টি হয় আপনি এটি করতে পারেন
foreach(var header in file.Headers ?? Enumerable.Empty<T>()){
}
এটি যদি ফাইলের খালি গণনার তৈরি করে। যদি ফাইলের ধরণটি আপনার নিজের ধরণের হয় তবে আমি তার Headers
পরিবর্তে গিটারটি পরিবর্তন করা বিবেচনা করব । null
অজানা এর মান তাই যদি সম্ভব হয় তবে "আমি জানি কোন উপাদান নেই" হিসাবে নাল ব্যবহার করার পরিবর্তে নাল আসলে (/ মূলত) ব্যাখ্যা করা উচিত "কোনও উপাদান আছে কিনা তা আমি জানি না" প্রদর্শন করার জন্য একটি খালি সেট ব্যবহার করুন আপনি জানেন যে সেটে কোনও উপাদান নেই। এটিও DRY'er হবে যেহেতু আপনাকে প্রায়শই নাল চেক করতে হবে না।
জোনস পরামর্শের অনুসরণ হিসাবে সম্পাদনা করুন, আপনি উপরের কোডটি পরিবর্তন করে একটি এক্সটেনশন পদ্ধতিও তৈরি করতে পারেন
foreach(var header in file.Headers.OrEmptyIfNull()){
}
আপনি যেখানে যোজনা পরিবর্তন করতে পারবেন না সে ক্ষেত্রে এটি আমার নিজস্ব পছন্দ হবে কারণ এটি অপারেশনটিকে একটি নাম দেওয়ার মাধ্যমে অভিপ্রায়টি আরও স্পষ্টভাবে প্রকাশ করে (ওআরম্পটিআইফনল)
উপরে উল্লিখিত এক্সটেনশন পদ্ধতিটি অপ্টিমাইজারটিকে সনাক্তকরণের জন্য নির্দিষ্ট কিছু অপ্টিমাইজেশনকে অসম্ভব করে তুলতে পারে। বিশেষত, এগুলি ওভারলোডিংয়ের পদ্ধতি ব্যবহার করে যা আইলিস্টের সাথে সম্পর্কিত তাদের মুছে ফেলা যায়
public static IList<T> OrEmptyIfNull<T>(this IList<T> source)
{
return source ?? Array.Empty<T>();
}