Làm thế nào để sắp một mảng chuỗi theo thứ tự Z-A trong CSharp? (How to sort string array from Z to A in CSharp?)


Bài viết này tôi sẽ giới thiệu cách sử dụng phương thức Array.Sort() trong C# để sắp xếp một mảng chuỗi ký tự theo thứ tụ giảm dần từ Z tới A.






Array.Sort()

Là một phương thức của lớp Array(class) được sử dụng để sắp xếp thứ tự của một theo thứ tự từ A-Z, hay từ Z-A tùy thuộc vào thông số của nó.

Phương thức này hỗ trợ rất nhiều cách sort khác nhau như, sort A-Z, sort Z-A, sort theo trường hợp chữ hoa, sort theo trường hợp chữ thường... để tránh bài viết dài nên tôi sẽ phân ra thành các trường hợp riêng để giới thiệu trong các bài viết sau.


Cú pháp - Syntax


  • IComparer bạn có để hiểu nó là một lớp hoặc một phương thức được tạo ra để đảo ngược mảng.
  • Như vậy ở đây ta có hiểu rằng Array.Sort sẽ sắp xếp mảng theo thứ tự từ A-Z còn IComparer thì dùng để đảo ngược lại mảng để sắp xếp thứ tự mảng theo chiều Z-A.


Ví dụ - Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
// @author: developer.bnson@gmail.com
// @web: vnlives.net
namespace ArraySort
{
    class Program
    {
        static void Main(string[] args)
        {

            string[] sArr = { "B", "b", "A", "a", "D", "d", "C", "c" };

            Console.WriteLine("--------- Before sort.");
            foreach (string sTmp in sArr)
            {
                Console.WriteLine("Number: " + sTmp);
            }

            Array.Sort(sArr, new Comparison<string>((s1, s2) => s2.CompareTo(s1)));

            Console.WriteLine("--------- After sort.");
            foreach (string sTmp in sArr)
            {
                Console.WriteLine("Number: " + sTmp);
            }

            Console.ReadLine();

        }
    }
}


Kết quả - Result


















No comments:

Post a Comment