সংক্ষিপ্ত উত্তর:
সরান (তালিকা থেকে results
)
results.RemoveAll(r => r.ID == 2);
সঙ্গে আইটেমটি মুছে ফেলা হবে আইডি 2 মধ্যে results
(জায়গায়)।
ফিল্টার (মূল তালিকা থেকে অপসারণ ছাড়াই results
):
var filtered = result.Where(f => f.ID != 2);
আইডি 2 ব্যতীত সমস্ত আইটেম প্রদান করে
বিস্তারিত উত্তর:
আমি মনে করি .RemoveAll()
খুব নমনীয়, কারণ আপনার আইটেম আইডির একটি তালিকা থাকতে পারে যা আপনি মুছে ফেলতে চান - দয়া করে নীচের উদাহরণটি বিবেচনা করুন।
যদি তোমার থাকে:
class myClass {
public int ID; public string FirstName; public string LastName;
}
এবং results
নিম্নলিখিত হিসাবে কিছু মান নির্ধারিত :
var results=new List<myClass> {
new myClass() { ID=1, FirstName="Bill", LastName="Smith" },
new myClass() { ID=2, FirstName="John", LastName="Wilson" },
new myClass() { ID=3, FirstName="Doug", LastName="Berg" },
new myClass() { ID=4, FirstName="Bill", LastName="Wilson" },
};
তারপরে আপনি মুছে ফেলার জন্য আইডিগুলির একটি তালিকা নির্ধারণ করতে পারেন:
var removeList = new List<int>() { 2, 3 };
এবং এগুলি সরাতে কেবল এটি ব্যবহার করুন:
results.RemoveAll(r => removeList.Any(a => a==r.ID));
এটি 2 এবং 3 আইটেমগুলি সরিয়ে ফেলবে এবং আইটেম 1 এবং 4 রাখবে - হিসাবে উল্লেখ করা হয়েছে removeList
। মনে রাখবেন যে এটি ঘটে যায়, তাই কোনও অতিরিক্ত অ্যাসিগমেন্টের প্রয়োজন নেই।
অবশ্যই আপনি এটি একক আইটেমগুলিতেও ব্যবহার করতে পারেন:
results.RemoveAll(r => r.ID==4);
যেখানে এটি আমাদের উদাহরণে আইডি 4 সহ বিলটি সরিয়ে ফেলবে।
ডটনেটফিডাল: ডেমো চালান
var itemsToRemove = resultlist.Where(r => r.Id == 2); foreach (var itemToRemove in ItemsToRemove) resultList.Remove(itemToRemove);