ภาพรวม
เมธอด HashSet<T>.SetEquals(IEnumerable<T>) ตรวจสอบว่าเซตและคอลเลกชันที่ระบุมีองค์ประกอบ เหมือนกันทุกประการ (ไม่มากกว่า ไม่น้อยกว่า ไม่ต่างกัน) คืนค่า true หากเท่ากัน false หากต่างกัน
ตัวอย่างที่ 1: เซตที่มีขนาดต่างกัน
using System;
using System.Collections.Generic;
public class Demo
{
public static void Main()
{
HashSet<string> set1 = new HashSet<string>();
set1.Add("One");
set1.Add("Two");
set1.Add("Three");
set1.Add("Four");
set1.Add("Five");
set1.Add("Six");
set1.Add("Seven");
HashSet<string> set2 = new HashSet<string>();
set2.Add("One");
set2.Add("Two");
set2.Add("Three");
set2.Add("Four");
Console.WriteLine("Does it contain the same elements? = " + set1.SetEquals(set2));
}
}
ผลลัพธ์
Does it contain the same elements? = False
ตัวอย่างที่ 2: เซตที่มีองค์ประกอบเหมือนกันทุกประการ
using System;
using System.Collections.Generic;
public class Demo
{
public static void Main()
{
HashSet<int> set1 = new HashSet<int>();
set1.Add(100);
set1.Add(200);
set1.Add(300);
set1.Add(400);
set1.Add(500);
set1.Add(600);
HashSet<int> set2 = new HashSet<int>();
set2.Add(100);
set2.Add(200);
set2.Add(300);
set2.Add(400);
set2.Add(500);
set2.Add(600);
Console.WriteLine("Does it contain the same elements? = " + set1.SetEquals(set2));
}
}
ผลลัพธ์
Does it contain the same elements? = True
คำอธิบายเพิ่มเติม
SetEquals()ตรวจสอบว่าเซตทั้งสองเป็นเซตเดียวกัน (same elements) ลำดับไม่สำคัญ- ต่างจาก
Overlaps()ที่ตรวจสอบเพียงว่ามีค่าร่วมกันอย่างน้อยหนึ่งค่า - พารามิเตอร์รับ IEnumerable<T> ใดๆ ก็ได้
- ซับซ้อนเวลา O(n) โดย n = จำนวนองค์ประกอบในเซตปัจจุบัน (สมมติ hash distribution ดี)
- HashSet ใช้ GetHashCode() และ Equals() ของ T สำหรับการเปรียบเทียบ