SortedList trong C#
Nếu tập dữ liệu của bạn được sắp xếp dựa trên một key (khóa), thì bạn có thể dùng đến
SortedList<Tkey,TValue>
. Lớp này sắp xếp dữ liệu dựa trên một key, kiểu đề làm key
là bất kỳ.
SortedList
được định nghĩa ở namespace: System.Collections
, sử dụng bạn cần
nạp namespace gồm:
using System.Collections; using System.Collections.Generic;
Một đối tượng dữ liệu lưu vào SortedList dưới dạng cặp key/value
, truy cập đến phần tử
thông qua key hoặc thông qua vị trí (index) của dữ liệu trong danh sách. Chú ý, không cho phép trùng
key.
Các thuộc tính, phương thức trong SortedList
Thành viên | Diễn giải |
---|---|
Count |
Thuộc tính cho biết số phần tử |
[key] |
Indexer truy cập đến phần tử có key |
Keys |
Thuộc tính là danh sách các key trong danh sách sắp xếp |
Values |
Thuộc tính lấy danh sách các giá trị trong danh sách |
Add(key, value) |
Thêm một phần tử vào danh sách |
Remove(key) |
Xóa phần tử bằng key của nó |
Clear() |
Loại bỏ tất cả các phần tử khỏi danh sách |
ContainKey(key) |
Kiểm tra có phần tử nào có khóa là key |
ContainValue(value) |
Kiểm tra có phần tử nào có giá trị là value |
IndexOfKey(key) |
Lấy chỉ số của phần tử có khóa là key |
IndexOfValue(value) |
Lấy chỉ số của phần tử có giá trị là value |
Ví dụ SortedList
Ví dụ tạo danh sách các sản phẩm, mỗi sản phẩm lưu vào danh sách với key tương ứng là tên và giá trị là mã sản phẩm. Từ đó, thực hiện một số thao tác trên danh sách này
public static void test () { // Khởi tạo SortedList var products = new SortedList<string, string> (); products.Add ("Iphone 6", "P-IPHONE-6"); // Thêm vào phần tử mới (key, value) products.Add ("Laptop Abc", "P-LAP"); products["Điện thoại Z"] = "P-DIENTHOAI"; // Thêm vào phần tử bằng Indexer products["Tai nghe XXX"] = "P-TAI"; // Thêm vào phần tử bằng Indexer // Duyệt qua các phần tử, mỗi phần tử lấy key/value lưu trong biến // kiểu KeyValuePair Console.WriteLine ("TÊN VÀ MÃ"); foreach (KeyValuePair<string, string> p in products) { Console.WriteLine ($" {p.Key} - {p.Value}"); } // kết quả: (để ý danh sách đã xếp theo key) // TÊN và MÃ // Điện thoại Z - P-DIENTHOAI // Iphone 6 - P-IPHONE-6 // Laptop Abc - P-LAP // Tai nghe XXX - P-TAI // Đọc value khi biết key string productName = "Tai nghe XXX"; Console.WriteLine ($"{productName} có mã là {products[productName]}"); // Cập nhật giá trị vào phần tử theo key products[productName] = "P-TAI-UPDATED"; // Duyệt qua các giá trị Console.WriteLine ("\nDANH SÁCH MÃ SẢN PHẢM"); foreach (var product_code in products.Values) { Console.WriteLine ($"--- {product_code}"); } // kết quả: // DANH SÁCH MÃ SẢN PHẢM // -- P-DIENTHOAI // -- P-IPHONE-6 // -- P-LAP // -- P-TAI-UPDATED // Duyệt qua các key Console.WriteLine ("\nDANH SÁCH TÊN SP"); foreach (var product_name in products.Keys) { Console.WriteLine ($"... {product_name}"); } // DANH SÁCH TÊN SP // -- Điện thoại Z // -- Iphone 6 // -- Laptop Abc // -- Tai nghe XXX }
Tham khảo mã nguồn: CS024_SomeCollections hoặc tải về ex024