Bài 32: SortedList trong lập trình C# C Sharp

Ngày đăng: 12/28/2022 4:50:41 PM

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 (" DANH 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 (" DANH 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

Nguồn tin: XuanThuLab