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

Dictionary trong C#

Lớp Dictionary<Tkey,TValue> khá giống SortedList, Dictionary được thiết kế với mục đích tăng hiệu quả với tập dữ liệu lớn, phức tạp.

Một đối tượng dữ liệu lưu vào Dictionary 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 Dictionary

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
Values Thuộc tính lấy danh sách các giá trị
Add(key, value) Thêm một phần tử vào Dictionary
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ử
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

Ví dụ, khai báo Dictionary với key kiểu string, giá trị kiểu int - khởi tạo ngay 2 phần tử

Dictionary<string, int> sodem = new Dictionary<string, int>()
{
 ["one"] = 1,
 ["tow"] = 2,
};
sodem["three"] = 3;

var keys = sodem.Keys;
foreach (var k in keys)
{
     var value = sodem[k];
     Console.WriteLine($"{k} = {value}");
}
// one = 1
// two = 2
// three = 3

Dictionary trong C#

Lớp SortedDictionary<Tkey,TValue> sử dụng, khai báo và khởi tạo ... giống như lớp Dictionary<Tkey,TValue>.

Chỉ cần lưu ý, nếu dùng SortedDictionary thì các các phần tử được lưu và sắp xếp theo key, thích hợp khi tăng tốc chèn, xóa, tìm kiếm theo key.

HashSet trong C#

HashSet là tập hợp danh sách không cho phép trùng giá trị. HashSet<T> khác với các collection khác là nó cung cấp cơ chế đơn giản nhất để lưu các giá trị, nó không chỉ mục thứ tự và các phần tử không sắp xếp theo thứ tự nào. HashSet<T> cung cấp hiệu năng cao cho các tác vụ tìm kiếm, thêm vào, xóa bỏ ...

Một số phương thức trong HashSet

Thành viên Diễn giải
Count Thuộc tính cho biết số phần tử
Add(T) Thêm phần tử vào HashSet
Remove(T) Xóa phần tử khỏi HashSet
Clear() Xóa tất cả các phần tử
Contains(T) Kiểm tra xem có phần tử trong HashSet
IsSubsetOf(c) Kiểm tra xem có là tập con của HashSet c
IsSupersetOf(c) Kiểm tra xem có chứa tập HashSet c
UnionWith(c) Hợp với tập HashSet c
IntersectWith(c) Giao với tập HashSet c
ExceptWith(c) Loại bỏ hết các phần tử chung với c
 HashSet>int< hashset1 = new HashSet>int<() {
     5,2,3,4
 };
 Console.WriteLine($"Phần tử trong hashset1 {hashset1.Count}");
 foreach (var v in hashset1)
 {
     Console.Write(v + " ");
 }
 Console.WriteLine();

HashSet>int< hashset2 = new HashSet>int<();
hashset2.Add(3);
hashset2.Add(4);
if (hashset1.IsSupersetOf(hashset2))
    Console.WriteLine($"hashset1 là tập chứa hashset2");
Đăng ký theo dõi ủng hộ kênh