ใช้ภาษา VBA(VB6) ครับ ไม่รู้มีวิธีจัดการที่ดีกว่านี้แล้ว
ตัวอย่าง
Ob(3) as class1 '(Array(member1, member2, member3, member4))
รูปแบบที่ 1
ถ้าลบสมาชิกตัวที่ 3 ก็ใส่ให้มันเป็นค่าว่างไป
Array(member1, member2, New Class1, member4) '<<< สร้าง New Class เปล่าๆ ไปแทน เวลาค้นหาก็จะไม่พบเพราะ Property ทุกตัวมีค่าว่าง
เวลาเพิ่มก็ไล่ต่อท้าย
Array(member1, member2, New Class1, member4, member5)
ข้อดีคือลบไว
ข้อเสียเปลืองแรม
รูปแบบที่ 2
ถ้าลบสมาชิกตัวที่ 3 แล้วเรียงใหม่สมาชิกข้างหลัง
RemoveIdex = 3
for Index = RemoveIdex + 1 to Ubound(Ob(3))
Ob(Index - 1) = pArray(Index)
next
ReDim Preserve Ob(UBound(Ob) - LBound(Ob) - 1)
ข้อเสีย เสียเวลาเรียงใหม่
สร้างคลาสไว้เวลาเพิ่ม member ทำเป็น blank ไว้หรือเรียง Element ใหม่ดี
ตัวอย่าง
Ob(3) as class1 '(Array(member1, member2, member3, member4))
รูปแบบที่ 1
ถ้าลบสมาชิกตัวที่ 3 ก็ใส่ให้มันเป็นค่าว่างไป
Array(member1, member2, New Class1, member4) '<<< สร้าง New Class เปล่าๆ ไปแทน เวลาค้นหาก็จะไม่พบเพราะ Property ทุกตัวมีค่าว่าง
เวลาเพิ่มก็ไล่ต่อท้าย
Array(member1, member2, New Class1, member4, member5)
ข้อดีคือลบไว
ข้อเสียเปลืองแรม
รูปแบบที่ 2
ถ้าลบสมาชิกตัวที่ 3 แล้วเรียงใหม่สมาชิกข้างหลัง
RemoveIdex = 3
for Index = RemoveIdex + 1 to Ubound(Ob(3))
Ob(Index - 1) = pArray(Index)
next
ReDim Preserve Ob(UBound(Ob) - LBound(Ob) - 1)
ข้อเสีย เสียเวลาเรียงใหม่