কম্পিউটার টিউটোরিয়াল

C#-এ HashSet-র প্রেডিকেট ম্যাচ করা উপাদান মুছে ফেলা

C#-এ HashSet<T> ক্লাসের RemoveWhere(Predicate<T> match) মেথড ব্যবহার করে শর্ত (predicate) মেটা সকল উপাদান একসাথে মুছে ফেলা যায়। HashSet হ্যাশ টেবিল বেসড, তাই ফিল্টারিং খুব দ্রুত হয়। প্রেডিকেট একটি Func<T, bool> বা মেথড গ্রুপ।

উদাহরণ ১: নির্দিষ্ট মান (100) মুছে ফেলা

using System;
using System.Collections.Generic;

public class Demo {
    // প্রেডিকেট: ১০০ এর সমান কিনা
    private static bool Is100(int i) {
        return i == 100;
    }

    public static void Main(String[] args) {
        HashSet<int> list = new HashSet<int>();
        list.Add(100);
        list.Add(300);
        list.Add(400);
        list.Add(500);
        list.Add(600);

        Console.WriteLine("HashSet উপাদান...");
        foreach (int i in list) {
            Console.WriteLine(i);
        }
        Console.WriteLine();

        // প্রেডিকেট ম্যাচ করা উপাদান মুছে ফেলা
        list.RemoveWhere(Is100);

        Console.WriteLine("এলিমেন্ট ১০০ রিমুভ করার পর HashSet...");
        foreach (int i in list) {
            Console.WriteLine(i);
        }
    }
}

আউটপুট

HashSet উপাদান...
100
300
400
500
600
HashSet এলিমেন্ট ১০০ রিমুভ করার পর...
300
400
500
600

উদাহরণ ২: ১০ দিয়ে ভাগযোগ্য সংখ্যা মুছে ফেলা

using System;
using System.Collections.Generic;

public class Demo {
    // প্রেডিকেট: ১০ দিয়ে ভাগযোগ্য কিনা
    private static bool IsDivisibleBy10(int i) {
        return (i % 10) == 0;
    }

    public static void Main(String[] args) {
        HashSet<int> list = new HashSet<int>();
        list.Add(100);
        list.Add(355);
        list.Add(400);
        list.Add(555);
        list.Add(600);

        Console.WriteLine("HashSet উপাদান...");
        foreach (int i in list) {
            Console.WriteLine(i);
        }
        Console.WriteLine();

        list.RemoveWhere(IsDivisibleBy10);

        Console.WriteLine("কিছু উপাদান রিমুভ করার পর HashSet...");
        foreach (int i in list) {
            Console.WriteLine(i);
        }
    }
}

আউটপুট

HashSet উপাদান...
100
355
400
555
600
HashSet কিছু উপাদান রিমুভ করার পর...
355
555

ব্যাখ্যা: RemoveWhere(Predicate<T>) মেথড সেটের সব উপাদান চেক করে এবং প্রেডিকেট সত্য হলে মুছে ফেলে। HashSet-এ এটি O(n) গড় সময় নেয় (প্রতিটি রিমুভ O(1) গড়)। ল্যাম্বডা এক্সপ্রেশন ব্যবহার করে সংক্ষিপ্ত লিখা যায়: set.RemoveWhere(x => x % 10 == 0)। HashSet ডুপ্লিকেট অনুমতি দেয় না এবং অর্ডার গ্যারান্টি দেয় না। সেট অপারেশন (Union, Intersect, Except, SymmetricExcept) বিল্ট-ইন সাপোর্টেড।

  1. উইন্ডোজে "Open With" লিস্ট থেকে অ্যাপস রিমুভ করার পদ্ধতি

  2. C#-এ অ্যারে থেকে লিস্ট তৈরি করা

  3. C#-এ লিস্ট থেকে ডুপ্লিকেট এলিমেন্ট সরানো

  4. LinkedList-এলিমেন্ট রিমুভ করার জাভা প্রোগ্রাম