Chia Sẻ Tìm hiểu về lớp SortedList trong C#

uocmo_kchodoi

Moderator
Lớp SortedList trong C# sử dụng một key cũng như một chỉ mục để truy cập các item trong một list.

Một danh sách đã được sắp xếp là sự tổ hợp của một mảng và một Hash Table. Nó chứa một danh sách các item mà có thể được truy cập bởi sử dụng một key hoặc một chỉ mục. Nếu bạn truy cập item bởi sử dụng một chỉ mục, nó là một ArrayList, và nếu bạn truy cập item bởi sử dụng key, nó là một HashTable. Tập hợp các item luôn luôn được sắp xếp bởi giá trị key.

Phương thức và Thuộc tính của lớp SortedList trong C#

* Dưới đây liệt kê các thuộc tính được sử dụng phổ biến của lớp SortedList trong C#:

1. Capacity: Lấy hoặc thiết lập dung lượng của SortedList
2. Count: Lấy số phần tử được chứa trong SortedList
3. IsFixedSize: Lấy một giá trị chỉ dẫn có hay không SortedList là có kích cỡ cố định
4. IsReadOnly: Lấy một giá trị chỉ dẫn có hay không SortedList là read-only
5. Item: Lấy và thiết lập giá trị được liên kết với một key cụ thể trong SortedList
6. Keys: Lấy các key trong SortedList
7. Values: Lấy các value trong SortedList

* Dưới đây liệt kê các phương thức được
sử dụng phổ biến của lớp SortedList trong C#:

1. public virtual void Add(object key, object value);
Thêm một phần tử với key và value đã xác định vào trong SortedList

2. public virtual void Clear();
Gỡ bỏ tất cả phần tử từ SortedList

3. public virtual bool ContainsKey(object key);
Xác định có hay không SortedList là chứa một key cụ thể

4. public virtual bool ContainsValue(object value);
Xác định có hay không SortedList là chứa một value cụ thể

5. public virtual object GetByIndex(int index);
Lấy value tại chỉ mục đã xác định của SortedList

6. public virtual object GetKey(int index);
Lấy key tại chỉ mục đã xác định của SortedList

7. public virtual IList GetKeyList();
Lấy các key trong SortedList

8. public virtual IList GetValueList();
Lấy các value trong SortedList

9. public virtual int IndexOfKey(object key);
Trả về chỉ mục (dựa trên cơ sở 0) của key đã xác định trong SortedList

10. public virtual int IndexOfValue(object value);
Trả về chỉ mục (dựa trên cơ sở 0) của lần xuất hiện đầu tiên của
value đã xác định trong SortedList

11. public virtual void Remove(object key);
Gỡ bỏ phần tử với key đã xác định từ SortedList

12. public virtual void RemoveAt(int index);
Gỡ bỏ phần tử tại chỉ mục đã xác định của SortedList

13. public virtual void TrimToSize();
Thiết lập capacity tới số phần tử thực sự trong SortedList

Ví dụ

Dưới đây là ví dụ minh họa các thuộc tính và
phương thức của lớp SortedList trong C#:

using System;
using System.Collections;
namespace VietJackCsharp
{
class TestCsharp
{
static void Main(string[] args)
{
Console.WriteLine("Vi du minh hoa SortedList trong C#");
Console.WriteLine("-------------------------------------");
SortedList ht = new SortedList();

ht.Add("001", "Tran Nam");
ht.Add("002", "Minh Chinh");
ht.Add("003", "Thu Phuong");
ht.Add("004", "Hong Ngoc");
ht.Add("005", "Lam Truong");
ht.Add("006", "Thuy Hang");
ht.Add("007", "Minh Hieu");

if (ht.ContainsValue("Phuong Thanh"))
{
Console.WriteLine("Sinh vien co ten tren da ton tai trong danh sach");
}
else
{
ht.Add("008", "Phuong Thanh");
}

// lay tap hop cac key
ICollection key = ht.Keys;

foreach (string k in key)
{
Console.WriteLine(k + ": " + ht[k]);
}

Console.ReadKey();
}
}
}
Nếu bạn không sử dụng lệnh Console.ReadKey(); thì chương trình sẽ chạy và kết thúc luôn (nhanh quá đến nỗi bạn không kịp nhìn kết quả). Lệnh này cho phép chúng ta nhìn kết quả một cách rõ ràng hơn.

Biên dịch và chạy chương trình C# trên sẽ cho kết quả sau:

sortedlist.PNG

Nguồn: vietjack.com
 
Sửa lần cuối bởi điều hành viên:
Đặc điểm của SortedList
  • Là 1 Hashtable nhưng các giá trị được sắp xếp theo Key. Việc sắp xếp này được thực hiện một cách tự động mỗi khi thêm 1 phần tử mới vào SortedList.
  • Có thể truy xuất đến các phần tử trong SortedList thông qua Key (như Hashtable) hoặc thông qua chỉ số phần tử (như ArrayList).
  • SortedList chính là sự kết hợp giữa ArrayList với Hashtable.
 


Viết trả lời...

VnKienthuc lúc này

Không có thành viên trực tuyến.

Định hướng

Diễn đàn VnKienthuc.com là nơi thảo luận và chia sẻ về mọi kiến thức hữu ích trong học tập và cuộc sống, khởi nghiệp, kinh doanh,...
Top