XXVI : Cách dùng SortedList trong C#

Ngày đăng: 2023-05-02 21:03:13

Mục lục

1. SortedList là gì?

SortedList có thể lưu trữ các cặp key/value được sắp xếp theo các key based trên Icompaper.

Ví dụ: nếu các khóa thuộc loại nguyên thủy thì sắp xếp theo thứ tự tăng dần.

Trong c# có hỗ trợ generic SortedList và non-generic SortedList. Bạn nên sử dụng generic SortedList vì nó hoạt động nhanh hơn và ít gặp lỗi hơn.

sorteslist 01 jpg

Các đặc điểm của SortedList:

  • Là một mảng các cặp key/value được sắp xếp theo các key.
  • Sắp xếp các phần tử ngay khi chúng được thêm vào.Sắp xếp các khóa kiểu nguyên thủy theo thứ tự tăng dần và các khóa đối tượng dựa trên IComparer <T>.
  • Key phải là duy nhất (không trùng nhau) và không được rỗng.
  • Value có thể là giá trị null.
  • Một giá trị có thể được truy cập thông qua key.
  • Nó sử dụng ít bộ nhớ.

2. Tạo SortedList

Ví dụ dưới đây minh họa cho cách tạo một SortedList và thêm các cặp key.value vào trong SortedList.

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 numberNames = new SortedList();

            numberNames.Add(3, "Three");

            numberNames.Add(1, "One");

            numberNames.Add(2, "Two");

            numberNames.Add(4, null);

            numberNames.Add(10, "Ten");

            numberNames.Add(5, "Five");
            ICollection key = numberNames.Keys;

            foreach (var k in key)
            {
                Console.WriteLine("Key: {0}, Value: {1}",k, numberNames[k]);
            }


            Console.ReadKey();
        }
    }
}

Trong ví dụ trên, một SortedList được tạo bằng cách chỉ định key/value mà nó sẽ lưu trữ. 

ở đây ta sử dụng từ khóa var mà không cần khai báo kiểu giá trị cụ thể của k.

Việc sử dụng phương thức Add() chỉ thêm duy nhất một cặp key/value vào trong SortedList. Các khóa không được để trống cũng như không trùng nhau.

Kết quả:

Ngoài ra ta cũng có thể khởi tạo nhiều cặp key/value như dưới đây:

 

using System;
using System.Collections;

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

                {

                    {"London", "UK"},

                    {"New York", "USA"},

                    { "Mumbai", "India"},

                    {"Johannesburg", "South Africa"}

                    };
            ICollection key = numberNames.Keys;

            foreach (var k in key)
            {
                Console.WriteLine("Key: {0}, Value: {1}",k, numberNames[k]);
            }


            Console.ReadKey();
        }
    }
}

Các cặp key/value sẽ được sắp xếp ngay sau khi được thêm vào trong SortedList.

Kết quả:

3. Truy cập SortedList

Ta có thể truy cập vào SortedList bằng cách sử dụng key để lấy hoặc đặt lại value trong SortedList. Ngoài ra có thể sử dụng phương thức ContainsKey để thêm giá trị vào SortedList.

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 numberNames = new SortedList()

                {

                    {3, "Three"},

                    {1, "One"},

                    {2, "Two"}

                    };

            //nếu key tồn tại

            if (!numberNames.ContainsKey(4))

            {

                numberNames[4] = "Four";

            }
            ICollection key = numberNames.Keys;

            foreach (var k in key)
            {
            if ( k is 4) { Console.WriteLine("Key: {0}, Value: {1}", k, numberNames[k]); }
                
            }


            Console.ReadKey();
        }
    }
}

Kết quả

4. Xóa các phần tử khỏi SortedList

Để xóa các cặp key/value khỏi SortedList ta có thể sử dụng phương thức Remove() và RemoveAt().

SortedList numberNames = new SortedList()

{

  {3, "Three"},

  {1, "One"},

  {2, "Two"},

    {5, "Five"},

  {4, "Four"},

};

     

numberNames.Remove(1);// xóa phần tử có key = 1

numberNames.RemoveAt(0);//xóa phần tử có key == 0

Kết quả:

 

Về bài trước...

                                  Bài tiếp theo...


Tài liệu lập trình C#

Bài viết trong cùng chuyên mục

Góc games giải trí



Cờ caro


Butterfly


Lật hình (luyện trí nhớ)

Cờ tướng ONLINE

Xếp hình

Ghép hình

15_PUZZLE

Kill ghosts

Banchim

Planet Defense

Tower game

Tower game

Plapy Bird (NH.Đông)

Vượt chướng ngại vật



0379136392

Thông tin liên hệ: Lê Văn Thuyên - ĐT: 0379136392 ; Gmail: lethuyen0379136392@gmail.com

Comment

 +   Lê Văn Thuyên-0379136392:Cảm ơn quý vị và các bạn đã vào Website của Lê Thuyên! Lê thuyên rất mong nhận được sự góp ý của quý vị và các bạn cho sự phát triển của website này. Xin chân thành cảm ơn!

Trả lời

 *   Dũng Trung-090567448:Lê Văn Thuyên0379136392--->Ok.Anh!

Trả lời

 *   Bé Nguyễn-benguyen@gmail,com:Lê Văn Thuyên0379136392--->Good job!

Trả lời

 +   -:

Trả lời

 +   -:

Trả lời

12625