Giới thiệu
KeyValuePair<TKey, TValue> là một struct đại diện cho một cặp khóa-giá trị. Nó thường được dùng trong Dictionary và các tập hợp liên quan. Khác với Dictionary, KeyValuePair chỉ lưu một cặp đơn lẻ và có thể lưu trong List.
Khởi tạo và thêm phần tử
var myList = new List>(); myList.Add(new KeyValuePair ("Laptop", 20)); myList.Add(new KeyValuePair ("Desktop", 40)); myList.Add(new KeyValuePair ("Tablet", 60));
Ví dụ hoàn chỉnh
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
var myList = new List>();
myList.Add(new KeyValuePair("Laptop", 20));
myList.Add(new KeyValuePair("Desktop", 40));
myList.Add(new KeyValuePair("Tablet", 60));
foreach (var val in myList)
{
Console.WriteLine($"Key: {val.Key}, Value: {val.Value}");
}
}
}
Kết quả
Key: Laptop, Value: 20 Key: Desktop, Value: 40 Key: Tablet, Value: 60
Truy cập Key và Value
Mỗi KeyValuePair có hai thuộc tính chỉ đọc (read-only):
Key- kiểuTKeyValue- kiểuTValue
So sánh với Dictionary
| Đặc điểm | Dictionary | List |
|---|---|---|
| Truy xuất theo Key | O(1) | O(n) |
| Cho phép Key trùng | Không | Có |
| Sắp xếp | Không bảo toàn thứ tự | Bảo toàn thứ tự thêm |
| Bộ nhớ | Lớn hơn (hash table) | Nhỏ hơn |
Khi nào dùng KeyValuePair trong List?
- Cần lưu trữ cặp khóa-giá trị với thứ tự xác định.
- Cho phép khóa trùng lặp.
- Danh sách nhỏ, không cần tra cứu nhanh theo khóa.
- Cần serialize đơn giản (JSON, XML).