ภาพรวม
เมธอด SortedSet<T>.Overlaps(IEnumerable<T>) ตรวจสอบว่าเซตและคอลเลกชันที่ระบุมีองค์ประกอบร่วมกันอย่างน้อยหนึ่งค่าหรือไม่ คืนค่า true หากมี ค่า false หากไม่มีค่าร่วมกันเลย
ตัวอย่างที่ 1: เซตที่มีค่าร่วมกันทั้งหมด
using System;
using System.Collections.Generic;
public class Demo
{
public static void Main()
{
SortedSet<int> set1 = new SortedSet<int>();
set1.Add(100);
set1.Add(200);
set1.Add(300);
set1.Add(400);
set1.Add(500);
set1.Add(600);
SortedSet<int> set2 = new SortedSet<int>();
set2.Add(100);
set2.Add(200);
set2.Add(300);
set2.Add(400);
set2.Add(500);
set2.Add(600);
Console.WriteLine("Does it share common elements? = " + set1.Overlaps(set2));
}
}
ผลลัพธ์
Does it share common elements? = True
ตัวอย่างที่ 2: เซตที่ไม่มีค่าร่วมกัน
using System;
using System.Collections.Generic;
public class Demo
{
public static void Main()
{
SortedSet<int> set1 = new SortedSet<int>();
set1.Add(100);
set1.Add(200);
set1.Add(300);
SortedSet<int> set2 = new SortedSet<int>();
set2.Add(450);
set2.Add(550);
set2.Add(650);
set2.Add(750);
set2.Add(800);
Console.WriteLine("Does it share common elements? = " + set1.Overlaps(set2));
}
}
ผลลัพธ์
Does it share common elements? = False
คำอธิบายเพิ่มเติม
Overlaps()หยุดการตรวจสอบทันทีเมื่อพบค่าร่วมกันแรก (short-circuit) ประหยัดเวลา- พารามิเตอร์รับ IEnumerable<T> ใดๆ ก็ได้ (List, Array, HashSet, อื่นๆ)
- ซับซ้อนเวลา O(m log n) โดย m = ขนาดคอลเลกชันที่ส่งเข้า, n = ขนาดเซต
- ต่างจาก
SetEquals()ที่ตรวจสอบว่าเซตทั้งสองมีค่า เหมือนกันทุกประการ