ด้วยรายการที่คุณสามารถทำได้:
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
พูดทางคณิตศาสตร์