LinkedList<T> trong namespace System.Collections.Generic là danh sách liên kết đôi (doubly linked list). Phương thức Find(value) trả về LinkedListNode<T> đầu tiên khớp giá trị.
Mã nguồn
using System;
using System.Collections.Generic;
class Program {
static void Main() {
// Tạo linked list
LinkedList myList = new LinkedList();
// Thêm 6 phần tử
myList.AddLast("P");
myList.AddLast("Q");
myList.AddLast("R");
myList.AddLast("S");
myList.AddLast("T");
myList.AddLast("U");
// Tìm node có giá trị "R"
LinkedListNode node = myList.Find("R");
// Thêm node mới SAU node "R"
if (node != null) {
myList.AddAfter(node, "ADDED");
}
// In danh sách
foreach (var item in myList) {
Console.WriteLine(item);
}
}
}
Kết quả
P
Q
R
ADDED
S
T
U
Các phương thức hữu ích của LinkedList
| Phương thức | Mô tả |
|---|---|
AddFirst(T) | Thêm vào đầu |
AddLast(T) | Thêm vào cuối |
AddBefore(node, T) | Thêm trước node cho trước |
AddAfter(node, T) | Thêm sau node cho trước |
Find(T) | Tìm node đầu tiên khớp giá trị (O(n)) |
FindLast(T) | Tìm node cuối cùng khớp giá trị |
Remove(T) | Xóa node đầu tiên khớp giá trị |
Remove(node) | Xóa node cụ thể (O(1)) |
Lưu ý
Findtrả vềnullnếu không tìm thấy — luôn kiểm tra null trước khi dùng.LinkedListphù hợp khi: thường chèn/xóa giữa danh sách, không cần truy cập ngẫu nhiên (index).- Truy cập theo index
list[index]không hỗ trợ — phải duyệt thủ công hoặc dùngElementAt(LINQ, O(n)). - Đối với hầu hết trường hợp,
List<T>hiệu quả hơn nhờ cache locality.