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

C#-তে HashSet-ই নির্দিষ্ট সংগ্রহের সঠিক সুপারসেট (Proper Superset) কিনা যাচাই করা

HashSet<T> ক্লাসের IsProperSupersetOf(IEnumerable<T> other) মেথড ব্যবহার করে একটি HashSet অন্য সংগ্রহের সঠিক সুপারসেট (proper superset) কিনা তা যাচাই করা যায়। একটি সেট A, সেট B-এর সঠিক সুপারসেট হলে A-তে B-র সব উপাদান থাকে এবং A-তে B-র বাইরে কমপক্ষে একটি উপাদান থাকে।

উদাহরণ ১: ইন্টিজার HashSet

using System;
using System.Collections.Generic;

public class Demo {
    public static void Main() {
        HashSet<int> set1 = new HashSet<int>();
        set1.Add(30);
        set1.Add(60);
        set1.Add(70);
        set1.Add(80);
        set1.Add(100);
        set1.Add(125);
        set1.Add(150);
        set1.Add(200);

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

        HashSet<int> set2 = new HashSet<int>();
        set2.Add(30);
        set2.Add(60);
        set2.Add(70);

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

        // set1 কি set2-র সঠিক সুপারসেট?
        bool isProperSuperset = set1.IsProperSupersetOf(set2);
        Console.WriteLine("\nset1 কি set2-র সঠিক সুপারসেট? " + isProperSuperset);
    }
}

আউটপুট

HashSet1 উপাদানসমূহ:
30
60
70
80
100
125
150
200

HashSet2 উপাদানসমূহ:
30
60
70

set1 কি set2-র সঠিক সুপারসেট? True

উদাহরণ ২: স্ট্রিং HashSet

using System;
using System.Collections.Generic;

public class Demo {
    public static void Main() {
        HashSet<string> set1 = new HashSet<string>();
        set1.Add("AB");
        set1.Add("CD");
        set1.Add("EF");
        set1.Add("GH");
        set1.Add("IJ");
        set1.Add("KL");
        set1.Add("MN");
        set1.Add("OP");

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

        HashSet<string> set2 = new HashSet<string>();
        set2.Add("EF");
        set2.Add("KL");

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

        bool isProperSuperset = set1.IsProperSupersetOf(set2);
        Console.WriteLine("\nset1 কি set2-র সঠিক সুপারসেট? " + isProperSuperset);
    }
}

আউটপুট

HashSet1 উপাদানসমূহ:
AB
CD
EF
GH
IJ
KL
MN
OP

HashSet2 উপাদানসমূহ:
EF
KL

set1 কি set2-র সঠিক সুপারসেট? True

সুপারসেট vs সঠিক সুপারসেট (Superset vs Proper Superset)

শর্তIsSupersetOfIsProperSupersetOf
A ⊇ B (A-তে B-র সব উপাদান আছে)truefalse (যদি A == B হয়)
A ⊃ B (A-তে B-র সব উপাদান আছে + অতিরিক্ত)truetrue
A ⊄ B (A-তে B-র কোনো উপাদান নেই)falsefalse

অন্যান্য সেট অপারেশন মেথড

  • IsSubsetOf(other) - সাবসেট কিনা (সঠিক সাবসেট: IsProperSubsetOf)
  • Overlaps(other) - কমপক্ষে একটি সাধারণ উপাদান আছে কিনা
  • SetEquals(other) - দুটি সেট সমান কিনা
  • ExceptWith(other) - other-এ থাকা উপাদানগুলো সরানো (ডিফারেন্স)
  • IntersectWith(other) - শুধু সাধারণ উপাদানগুলো রাখা (ইন্টারসেকশন)
  • UnionWith(other) - দুটি সেট একত্রিত করা (ইউনিয়ন)
  • SymmetricExceptWith(other) - সিমেট্রিক ডিফারেন্স (শুধু যেগুলো একটি সেটে আছে)

পারফরম্যান্স নোট

  • IsProperSupersetOf সাধারণত O(n) حيث n = other.Count
  • HashSet-র O(1) লুকআপ সুবিধা ল۟ে কাজ করে
  • আর্গুমেন্ট হিসেবে যেকোনো IEnumerable<T> নেওয়া যায় (List, Array, অন্য HashSet, ইত্যাদি)
  1. C#-এ HashSet-তে নির্দিষ্ট উপাদান রয়েছে কিনা তা যাচাই করুন

  2. C#-এ HashSet এবং নির্দিষ্ট কালেকশনে সাধারণ উপাদান আছে কিনা তা যাচাই করুন

  3. C#-এ HashSet (C# Set Collection)

  4. জাভাতে HashSet