บทความนี้สาธิตวิธีการลบช่วงข้อมูล (range of elements) ออกจาก List<T> โดยใช้ method RemoveRange(int index, int count)
ตัวอย่างที่ 1: ลบช่วงข้อมูลจาก List
using System;
using System.Collections.Generic;
public class Demo
{
public static void Main(String[] args)
{
List<string> list1 = new List<string>();
list1.Add("One");
list1.Add("Two");
list1.Add("Three");
list1.Add("Four");
list1.Add("Five");
Console.WriteLine("Elements in List1...");
foreach (string res in list1)
{
Console.WriteLine(res);
}
List<string> list2 = new List<string>();
list2.Add("India");
list2.Add("US");
list2.Add("UK");
list2.Add("Canada");
list2.Add("Poland");
list2.Add("Netherlands");
Console.WriteLine("Elements in List2...");
foreach (string res in list2)
{
Console.WriteLine(res);
}
Console.WriteLine("\nIs List2 equal to List1? = " + list2.Equals(list1));
Console.WriteLine("\nCount of elements in list2 = " + list2.Count);
list2.RemoveRange(1, 3); // ลบ 3 รายการ เริ่มจาก index 1 (US, UK, Canada)
Console.WriteLine("\nCount of elements in list2 (updated) = " + list2.Count);
Console.WriteLine("Elements in List2... UPDATED");
foreach (string res in list2)
{
Console.WriteLine(res);
}
}
}
ผลลัพธ์
Elements in List1... One Two Three Four Five Elements in List2... India US UK Canada Poland Netherlands Is List2 equal to List1? = False Count of elements in list2 = 6 Count of elements in list2 (updated) = 3 Elements in List2... UPDATED India Poland Netherlands
ตัวอย่างที่ 2: ลบช่วงข้อมูลหลายครั้งติดต่อกัน
using System;
using System.Collections.Generic;
public class Demo
{
public static void Main(String[] args)
{
List<string> list = new List<string>();
list.Add("India");
list.Add("US");
list.Add("UK");
list.Add("Canada");
list.Add("Poland");
list.Add("Netherlands");
list.Add("Bhutan");
list.Add("Singapore");
Console.WriteLine("Elements in List...");
foreach (string res in list)
{
Console.WriteLine(res);
}
Console.WriteLine("\nCount of elements in list = " + list.Count);
list.RemoveRange(1, 3); // ลบ US, UK, Canada
Console.WriteLine("\nCount of elements in list (updated) = " + list.Count);
Console.WriteLine("Elements in List... UPDATED");
foreach (string res in list)
{
Console.WriteLine(res);
}
list.RemoveRange(2, 3); // ลบ Bhutan, Singapore (และอีก 1 ตัวถ้ามี)
Console.WriteLine("\nCount of elements in list (updated) = " + list.Count);
Console.WriteLine("Elements in List... UPDATED");
foreach (string res in list)
{
Console.WriteLine(res);
}
}
}
ผลลัพธ์
Elements in List... India US UK Canada Poland Netherlands Bhutan Singapore Count of elements in list = 8 Count of elements in list (updated) = 5 Elements in List... UPDATED India Poland Netherlands Bhutan Singapore Count of elements in list (updated) = 2 Elements in List... UPDATED India Poland
คำอธิบายเพิ่มเติม
RemoveRange(int index, int count)ลบcountรายการ เริ่มจากindex- index ต้องอยู่ในช่วง 0 ถึง Count-1, count ต้องไม่เกินจำนวนที่เหลือ
- โยน
ArgumentOutOfRangeExceptionถ้าพารามิเตอร์ไม่ถูกต้อง - เวลา complexity: O(n) - ต้องเลื่อนข้อมูลหลังช่วงที่ลบมาทับตำแหน่งเดิม
- Method คล้ายกัน:
RemoveAt(index)ลบ 1 รายการ,Remove(item)ลบค่าแรกที่พบ