C# Cơ bản .NET Core §1) Cài đặt, chương trình C# đầu tiên §2) Biến, kiểu dữ liệu và nhập/xuất §3) Toán tử số học và gán §4) So sánh, logic và lệnh if, switch §5) Vòng lặp for, while §6) Phương thức - Method §7) Phương thức - Delegate §8) Lớp - Class §9) Kiểu vô danh và dynamic §10) Biểu thức lambda §11) Event §12) Hàm hủy - Quá tải toán tử - thành viên tĩnh - indexer §13) Lớp lồng nhau - namespace §14) null và nullable §15) Mảng §16) Chuỗi ký tự §17) Tính kế thừa §18) Tính đa hình - abstract - interface §19) Struct và Enum §20) Ngoại lệ Exeption §21) IDisposable - using §22) File cơ bản §23) FileStream §24) Generic §25) Collection - List §26) SortedList §27) Queue / Stack §28) Linkedlist §29) Dictionary - HashSet §30) Phương thức mở rộng §31) ObservableCollection §32) LINQ §33) (Multithreading) async - bất đồng bộ §34) Type §35) Attribute Annotation §36) DI Dependency Injection §37) (Multithreading) Parallel §38) (Networking) HttpClient §39) (Networking) HttpMessageHandler §40) (Networking) HttpListener §41) (Networking) Tcp TcpListenerr/TcpClient §42) (ADO.NET) SqlConnection §43) (ADO.NET) SqlCommand §44) (EF Core) Tổng quan §45) (EF Core) Tạo Model §46) (EF Core) Fluent API §47) (EF Core) Query §48) (EF Core) Scaffold §49) (EF Core) Migration §50) (ASP.NET CORE) Hello World! §51) (ASP.NET CORE) Middleware §52) (ASP.NET CORE) Map - Request - Response §53) (ASP.NET CORE) IServiceCollection - MapWhen §54) (ASP.NET CORE) Session - ISession §55) (ASP.NET CORE) Configuration §56) (ASP.NET CORE MVC) Controller - View

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ỳ.

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

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

Console.WriteLine("TÊN VÀ MÃ");

// 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
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

string productName = "Tai nghe XXX";
Console.WriteLine($"{productName} có mã là {products[productName]}");   // Đọc value khi biết  key

products[productName] = "P-TAI-UPDATED";                                // Cập nhật giá trị vào phần tử theo key


// 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
Đăng ký theo dõi ủng hộ kênh