Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

การหาส่วนร่วมของ SortedSet กับคอลเลกชันใน C#

ภาพรวม

SortedSet<T>.IntersectWith(IEnumerable<T>) ทำงานเหมือน HashSet แต่คงลำดับการเรียงข้อมูลไว้

ตัวอย่าง 1: SortedSet int

using System;
using System.Collections.Generic;

public class Demo {
    public static void Main() {
        SortedSet set1 = new SortedSet();
        set1.Add(100);
        set1.Add(200);
        set1.Add(300);

        SortedSet set2 = new SortedSet();
        set2.Add(450);
        set2.Add(200);
        set2.Add(650);
        set2.Add(300);
        set2.Add(800);

        Console.WriteLine("Does it contain the same elements? = " + set1.SetEquals(set2));
        set1.IntersectWith(set2);
        Console.WriteLine("Resultant SortedSet...");
        foreach (int val in set1) {
            Console.WriteLine(val);
        }
    }
}

ผลลัพธ์ตัวอย่าง 1

Does it contain the same elements? = False
Resultant SortedSet...
200
300

ตัวอย่าง 2: SortedSet สตริง

using System;
using System.Collections.Generic;

public class Demo {
    public static void Main() {
        SortedSet set1 = new SortedSet();
        set1.Add("AB");
        set1.Add("BC");
        set1.Add("CD");
        set1.Add("EF");
        set1.Add("PQ");
        set1.Add("ST");

        Console.WriteLine("Elements in SortedSet1...");
        foreach (string res in set1) {
            Console.WriteLine(res);
        }
        Console.WriteLine("Count of elements in SorteSet1 = " + set1.Count);

        SortedSet set2 = new SortedSet();
        set2.Add("BC");
        set2.Add("CD");
        set2.Add("DE");
        set2.Add("EF");
        set2.Add("AB");
        set2.Add("HI");
        set2.Add("JK");

        Console.WriteLine("Elements in SortedSet2 (Enumerator for SortedSet)...");
        SortedSet.Enumerator demoEnum = set2.GetEnumerator();
        while (demoEnum.MoveNext()) {
            string res = demoEnum.Current;
            Console.WriteLine(res);
        }
        Console.WriteLine("Count of elements in SorteSet2 = " + set2.Count);

        set1.IntersectWith(set2);
        Console.WriteLine("Resultant SortedSet...");
        foreach (string val in set1) {
            Console.WriteLine(val);
        }
    }
}

ผลลัพธ์ตัวอย่าง 2

Elements in SortedSet1...
AB
BC
CD
EF
PQ
ST
Count of elements in SorteSet1 = 6
Elements in SortedSet2 (Enumerator for SortedSet)...
AB
BC
CD
DE
EF
HI
JK
Count of elements in SorteSet2 = 7
Resultant SortedSet...
AB
BC
CD
EF

สรุป

  • ผลลัพธ์ยังคงเรียงลำดับ (sorted)
  • ใช้ SetEquals ตรวจสอบว่าเซตเหมือนกันทุกอย่างก่อน
  • ทำงาน in-place บน SortedSet ต้นทาง