บทความนี้สาธิตวิธีลบโหนด (nodes) ทั้งหมดออกจาก LinkedList<T> โดยใช้เมธอด Clear() ใน C#
ตัวอย่างที่ 1: สร้าง LinkedList จากอาเรย์ แล้วลบทั้งหมด
using System;
using System.Collections.Generic;
public class Demo
{
public static void Main()
{
int[] num = { 10, 20, 30, 40, 50 };
LinkedList<int> list = new LinkedList<int>(num);
Console.WriteLine("LinkedList nodes...");
foreach (var n in list)
{
Console.WriteLine(n);
}
list.Clear();
Console.WriteLine("LinkedList is empty now!");
foreach (var n in list)
{
Console.WriteLine(n); // ไม่มีอะไรพิมพ์ออกมา
}
}
}
ผลลัพธ์
LinkedList nodes... 10 20 30 40 50 LinkedList is empty now!
ตัวอย่างที่ 2: เพิ่มโหนดทีละตัว แล้วตรวจสอบ Count ก่อน/หลัง Clear
using System;
using System.Collections.Generic;
public class Demo
{
public static void Main()
{
LinkedList<string> list = new LinkedList<string>();
list.AddLast("A");
list.AddLast("B");
list.AddLast("C");
list.AddLast("D");
list.AddLast("E");
list.AddLast("F");
list.AddLast("G");
list.AddLast("H");
list.AddLast("I");
list.AddLast("J");
Console.WriteLine("Count of nodes = " + list.Count);
list.Clear();
Console.WriteLine("Count of nodes (updated) = " + list.Count);
}
}
ผลลัพธ์
Count of nodes = 10 Count of nodes (updated) = 0
สรุป
- ใช้
Clear()เพื่อลบโหนดทั้งหมดออกจาก LinkedList — ทำให้Count = 0 LinkedList<T>เป็น doubly linked list — แต่ละโหนดมี reference ไปทั้ง next และ previous- เมธอดเพิ่มโหนดหลัก:
AddFirst(),AddLast(),AddBefore(),AddAfter() - เมธอดลบโหนด:
Remove(),RemoveFirst(),RemoveLast(),Clear() - หลัง
Clear()โหนดทั้งหมดถูกปล่อยให้ GC จัดการ — LinkedList พร้อมใช้งานใหม่ได้ทันที - Complexity ของ
Clear()คือ O(n) ต้องเดินทุกโหนดเพื่อปล่อย reference
เมธอด LinkedList ที่น่าสนใจ
| เมธอด | คำอธิบาย |
|---|---|
| AddFirst(T) | เพิ่มโหนดที่ด้านหน้า |
| AddLast(T) | เพิ่มโหนดที่ด้านหลัง |
| AddBefore(LinkedListNode, T) | เพิ่มก่อนโหนดที่ระบุ |
| AddAfter(LinkedListNode, T) | เพิ่มหลังโหนดที่ระบุ |
| Remove(T) | ลบโหนดแรกที่มีค่าตรงกัน |
| Remove(LinkedListNode) | ลบโหนดที่ระบุโดยตรง |
| RemoveFirst() / RemoveLast() | ลบโหนดแรก/สุดท้าย |
| Clear() | ลบทั้งหมด |
| Find(T) / FindLast(T) | ค้นหาโหนดแรก/สุดท้ายที่มีค่าตรงกัน |