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

วิธีลบสมาชิกที่ดัชนีที่ระบุของ ArrayList ใน C#

บทความนี้สาธิตวิธีการลบสมาชิก (element) ที่ดัชนี (index) ที่ระบุจาก ArrayList โดยใช้ method RemoveAt(int index)

ตัวอย่างที่ 1: ลบดัชนี 5 จาก ArrayList

using System;
using System.Collections;

public class Demo
{
    public static void Main(String[] args)
    {
        ArrayList list1 = new ArrayList();
        list1.Add("A");
        list1.Add("B");
        list1.Add("C");
        list1.Add("D");
        list1.Add("E");
        list1.Add("F");
        list1.Add("G");
        list1.Add("H");
        list1.Add("I");

        Console.WriteLine("Elements in ArrayList1...");
        foreach (string res in list1)
        {
            Console.WriteLine(res);
        }

        ArrayList list2 = new ArrayList();
        list2.Add("A");
        list2.Add("B");
        list2.Add("C");
        list2.Add("D");
        list2.Add("E");
        list2.Add("F");
        list2.Add("G");
        list2.Add("H");
        list2.Add("I");

        Console.WriteLine("Elements in ArrayList2...");
        foreach (string res in list2)
        {
            Console.WriteLine(res);
        }

        Console.WriteLine("Count of elements in ArrayList2 = " + list2.Count);

        list2.RemoveAt(5); // ลบ index 5 (F)

        Console.WriteLine("Count of elements in ArrayList2 (Updated) = " + list2.Count);
    }
}

ผลลัพธ์

Elements in ArrayList1...
A
B
C
D
E
F
G
H
I
Elements in ArrayList2...
A
B
C
D
E
F
G
H
I
Count of elements in ArrayList2 = 9
Count of elements in ArrayList2 (Updated) = 8

ตัวอย่างที่ 2: ลบดัชนี 2 จาก ArrayList อื่น

using System;
using System.Collections;

public class Demo
{
    public static void Main(String[] args)
    {
        ArrayList list1 = new ArrayList();
        list1.Add("Laptop");
        list1.Add("Desktop");
        list1.Add("Wearables");
        list1.Add("Tablet");
        list1.Add("Notebook");
        list1.Add("Ultrabooks");

        Console.WriteLine("Elements in ArrayList1...");
        foreach (string res in list1)
        {
            Console.WriteLine(res);
        }

        Console.WriteLine("Count of elements in ArrayList = " + list1.Count);

        list1.RemoveAt(2); // ลบ index 2 (Wearables)

        Console.WriteLine("Count of elements in ArrayList (Updated) = " + list1.Count);
    }
}

ผลลัพธ์

Elements in ArrayList1...
Laptop
Desktop
Wearables
Tablet
Notebook
Ultrabooks
Count of elements in ArrayList = 6
Count of elements in ArrayList (Updated) = 5

คำอธิบายเพิ่มเติม

  • ArrayList เป็น non-generic collection (เก็บ object) - แนะนำใช้ List<T> แทนในโค้ดใหม่
  • RemoveAt(int index) ลบรายการที่ดัชนีที่ระบุ (0-based)
  • โยน ArgumentOutOfRangeException ถ้าดัชนีอยู่นอกช่วง
  • หลังลบแล้ว รายการถัดไปจะเลื่อนมาทับ (shift left) - index ของรายการหลังจะลดลง 1
  • เวลา complexity: O(n) - ต้องเลื่อนข้อมูล
  • Method คล้ายกัน: Remove(object) ลบค่าแรกที่พบ, RemoveRange(index, count) ลบช่วง, Clear() ลบทั้งหมด