ด้วยรายการที่คุณสามารถทำได้:
list.AddRange(otherCollection);
ไม่มีวิธีการที่หลากหลายเพิ่มในเป็นHashSet วิธีที่ดีที่สุดในการเพิ่มคอลเล็กชันอื่นใน HashSet คืออะไร
ด้วยรายการที่คุณสามารถทำได้:
list.AddRange(otherCollection);
ไม่มีวิธีการที่หลากหลายเพิ่มในเป็นHashSet วิธีที่ดีที่สุดในการเพิ่มคอลเล็กชันอื่นใน HashSet คืออะไร
คำตอบ:
สำหรับชื่อเป็นHashSet<T>UnionWith
นี่คือการระบุวิธีการHashSetทำงานที่ชัดเจน คุณไม่สามารถAddตั้งค่าองค์ประกอบสุ่มให้เหมือนกับที่ปลอดภัยได้Collectionsองค์ประกอบบางอย่างอาจระเหยไปตามธรรมชาติ
ฉันคิดว่าUnionWithใช้ชื่อหลังจาก "รวมเข้ากับอีกHashSet" อย่างไรก็ตามมีเกินสำหรับIEnumerable<T>เกินไป
นี่คือวิธีหนึ่ง:
public static class Extensions
{
    public static bool AddRange<T>(this HashSet<T> source, IEnumerable<T> items)
    {
        bool allAdded = true;
        foreach (T item in items)
        {
            allAdded &= source.Add(item);
        }
        return allAdded;
    }
}
              
HashSet(และISet) ถูกสร้างขึ้นด้วยคำที่กำหนดทางคณิตศาสตร์UnionWithเป็นระยะใกล้ ยกเว้นExceptซึ่งควรตั้งชื่ออย่างชัดเจนว่าการSubtractพูดทางคณิตศาสตร์