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

C#-তে HashSet-র সব উপাদান সরাতে Clear() মেথড ব্যবহার

HashSet<T> ক্লাসের Clear() মেথড সেটের সব উপাদান একসাথে সরিয়ে দেয় এবং Count প্রোপার্টি শূন্য করে দেয়। এটি O(n) অপারেশন যেখানে n হলো উপাদান সংখ্যা।

উদাহরণ ১: দুটি HashSet এবং Clear() ব্যবহার

using System;
using System.Collections.Generic;

public class Demo {
    public static void Main(string[] args) {
        HashSet<string> set1 = new HashSet<string>();
        set1.Add("A");
        set1.Add("B");
        set1.Add("C");
        set1.Add("D");
        set1.Add("E");
        set1.Add("F");
        set1.Add("G");
        set1.Add("H");

        Console.WriteLine("HashSet1 উপাদানসমূহ...");
        foreach (string res in set1) {
            Console.WriteLine(res);
        }

        HashSet<string> set2 = new HashSet<string>();
        set2.Add("জন");
        set2.Add("জ্যাকব");
        set2.Add("রায়ান");
        set2.Add("টম");
        set2.Add("এন্ডি");
        set2.Add("টিম");
        set2.Add("স্টিভ");
        set2.Add("মার্ক");

        Console.WriteLine("\nHashSet2 উপাদানসমূহ...");
        foreach (string res in set2) {
            Console.WriteLine(res);
        }

        Console.WriteLine("HashSet1 == HashSet2? = " + set1.Equals(set2));  // False
        Console.WriteLine("HashSet2-র উপাদান সংখ্যা = " + set2.Count);  // ৮

        // set2 Clear করা
        set2.Clear();

        Console.WriteLine("HashSet2-র উপাদান সংখ্যা (আপডেট) = " + set2.Count);  // ০
    }
}

আউটপুট

HashSet1 উপাদানসমূহ...
A
B
C
D
E
F
G
H

HashSet2 উপাদানসমূহ...
জন
জ্যাকব
রায়ান
টম
এন্ডি
টিম
স্টিভ
মার্ক
HashSet1 == HashSet2? = False
HashSet2-র উপাদান সংখ্যা = 8
HashSet2-র উপাদান সংখ্যা (আপডেট) = 0

উদাহরণ ২: সিম্পল HashSet Clear()

using System;
using System.Collections.Generic;

public class Demo {
    public static void Main(string[] args) {
        HashSet<string> set1 = new HashSet<string>();
        set1.Add("A");
        set1.Add("B");
        set1.Add("C");
        set1.Add("D");
        set1.Add("E");
        set1.Add("F");
        set1.Add("G");
        set1.Add("H");

        Console.WriteLine("HashSet উপাদানসমূহ...");
        foreach (string res in set1) {
            Console.WriteLine(res);
        }

        Console.WriteLine("HashSet1-র উপাদান সংখ্যা = " + set1.Count);  // ৮

        set1.Clear();

        Console.WriteLine("HashSet1-র উপাদান সংখ্যা (আপডেট) = " + set1.Count);  // ০
    }
}

আউটপুট

HashSet উপাদানসমূহ...
A
B
C
D
E
F
G
H
HashSet1-র উপাদান সংখ্যা = 8
HashSet1-র উপাদান সংখ্যা (আপডেট) = 0

HashSet.Clear() - গুরুত্বপূর্ণ বিষয়সমূহ

  • সময় জটিলতা: O(n) - সব উপাদান রিলিজ করতে হয়।
  • Count: Clear() পর Count = 0 হয়।
  • Capacity/Buckets: Clear() করলে বাকেট অ্যারে রিসেট হয় (ডিফল্ট ক্যাপাসিটিতে ফেরত যায়)।
  • ইন-প্লেস: মুল HashSet অবজেক্ট মডিফাই হয় (নতুন অবজেক্ট তৈরি হয় না)।
  • থ্রেড-সেফ নয়: মাল্টি-থ্রেডেড এনভায়রনমেন্টে লক ব্যবহার করুন।

HashSet-র অন্যান্য উপাদান সরানোর মেথড

মেথডবিবরণরিটার্ন
Remove(T item)নির্দিষ্ট একটি উপাদান সরায়bool (সফল হলে true)
RemoveWhere(Predicate<T>)শর্ত মেলা সব উপাদান সরায়int (সরানো উপাদান সংখ্যা)
ExceptWith(IEnumerable<T>)অন্য সংগ্রহের উপাদানগুলো সরায়void
IntersectWith(IEnumerable<T>)শুধু সাধারণ উপাদান রাখেvoid
Clear()সব উপাদান সরায়void

HashSet vs SortedSet vs List - Clear() তুলনা

বৈশিষ্ট্যHashSet<T>SortedSet<T>List<T>
Clear() সময়O(n)O(n)O(n)
অর্ডারআনঅর্ডার্ডসর্টেডইনসারশন অর্ডার
ইউনিক কনস্ট্রেইন্টহ্যাঁহ্যাঁনা
Capacity আচরণরিসেট হয়ট্রি ক্লিয়ার হয়অপরিবর্তিত (TrimExcess দরকার)

টিপ: HashSet পুনরাবৃত্তি করার সময় অর্ডার গ্যারান্টি নেই। নির্দিষ্ট অর্ডার দরকার হলে SortedSet বা List + Sort() ব্যবহার করুন।

  1. C#-তে অন্য একটি সংগ্রহ থেকে HashSet তৈরি করা

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

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

  4. জাভাতে ArrayList-এ থেকে সব এলিমেন্ট রিমূভ করা