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)
| শর্ত | IsSupersetOf | IsProperSupersetOf |
|---|---|---|
| A ⊇ B (A-তে B-র সব উপাদান আছে) | true | false (যদি A == B হয়) |
| A ⊃ B (A-তে B-র সব উপাদান আছে + অতিরিক্ত) | true | true |
| A ⊄ B (A-তে B-র কোনো উপাদান নেই) | false | false |
অন্যান্য সেট অপারেশন মেথড
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, ইত্যাদি)