Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

KeyValuePair trong C#


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ểu TKey
  • Value - kiểu TValue

So sánh với Dictionary

Đặc điểmDictionaryList
Truy xuất theo KeyO(1)O(n)
Cho phép Key trùngKhôngCó
Sắp xếpKhô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).