C#-এ HashSet<T>.IntersectWith(IEnumerable<T> other) মেথড বর্তমান HashSet-কে সংশোধন করে যাতে শুধু অন্য সেটের সাথে সাধারণ এলিমেন্টগুলো থাকে। এটি সেট থিয়োরির ইন্টারসেকশন অপারেশন।
উদাহরণ ১: স্ট্রিং HashSet ইন্টারসেকশন
using System;
using System.Collections.Generic;
public class Demo {
public static void Main() {
HashSet set1 = new HashSet();
set1.Add("AB");
set1.Add("CD");
set1.Add("EF");
set1.Add("AB"); // ডুপ্লিকেট বাদ যাবে
set1.Add("IJ");
set1.Add("KL");
set1.Add("EF"); // ডুপ্লিকেট
set1.Add("OP");
Console.WriteLine("HashSet1-এ এলিমেন্টসমূহ");
foreach (string val in set1) {
Console.WriteLine(val);
}
HashSet set2 = new HashSet();
set2.Add("EF");
set2.Add("KL");
Console.WriteLine("\nHashSet2-এ এলিমেন্টসমূহ");
foreach (string val in set2) {
Console.WriteLine(val);
}
Console.WriteLine("HashSet2-এ এলিমেন্ট সংখ্যা = " + set2.Count);
set2.Remove("KL");
Console.WriteLine("\nHashSet2-এ এলিমেন্টসমূহ (আপডেটেড)...");
foreach (string res in set2) {
Console.WriteLine(res);
}
Console.WriteLine("HashSet2-এ এলিমেন্ট সংখ্যা (আপডেটেড) = " + set2.Count);
Console.WriteLine("\nset1 কি set2-এর সুপারসেট? " + set1.IsSupersetOf(set2));
set1.IntersectWith(set2);
Console.WriteLine("\nইন্টারসেকশন ফলাফল...");
foreach (string str in set1) {
Console.WriteLine(str);
}
}
}
আউটপুট
HashSet1-এ এলিমেন্টসমূহ AB CD EF IJ KL OP HashSet2-এ এলিমেন্টসমূহ EF KL HashSet2-এ এলিমেন্ট সংখ্যা = 2 HashSet2-এ এলিমেন্টসমূহ (আপডেটেড)... EF HashSet2-এ এলিমেন্ট সংখ্যা (আপডেটেড) = 1 set1 কি set2-এর সুপারসেট? True ইন্টারসেকশন ফলাফল... EF
উদাহরণ ২: ইন্টিজার HashSet ইন্টারসেকশন
using System;
using System.Collections.Generic;
public class Demo {
public static void Main() {
HashSet set1 = new HashSet();
set1.Add(30);
set1.Add(60);
set1.Add(70);
set1.Add(80);
set1.Add(100);
set1.Add(125);
Console.WriteLine("HashSet1-এ এলিমেন্টসমূহ");
foreach (int val in set1) {
Console.WriteLine(val);
}
HashSet set2 = new HashSet();
set2.Add(30);
set2.Add(60);
set2.Add(70);
set2.Add(80);
set2.Add(100);
set2.Add(125);
Console.WriteLine("\nHashSet2-এ এলিমেন্টসমূহ");
foreach (int val in set2) {
Console.WriteLine(val);
}
set1.IntersectWith(set2);
Console.WriteLine("\nইন্টারসেকশন ফলাফল...");
foreach (int val in set1) {
Console.WriteLine(val);
}
}
}
আউটপুট
HashSet1-এ এলিমেন্টসমূহ 30 60 70 80 100 125 HashSet2-এ এলিমেন্টসমূহ 30 60 70 80 100 125 ইন্টারসেকশন ফলাফল... 30 60 70 80 100 125
ব্যাখ্যা: IntersectWith মূল সেটকে মিউটেট করে (in-place)। ডুপ্লিকেট অটোমেটিক্যালি হ্যান্ডেল হয় কারণ HashSet ডুপ্লিকেট অনুমতি দেয় না। ইন্টারসেকশন後の সেটে শুধু সাধারণ এলিমেন্টগুলো থাকে। এটি O(n) সময়ে কাজ করে যেখানে n হলো বর্তমান সেটের আকার।