Làm thế nào để sắp xếp một mảng số từ lớn tới nhỏ trong CSharp? (How to sort number array from large to small 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 số theo thứ tụ giảm dần từ lớn tới nhỏ.





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)
        {

            int[] iArr = {2, 4, 7, 1, 3, 8, 5, 9, 6};

            Console.WriteLine("--------- Before sort.");
            foreach (int iTmp in iArr)
            {
                Console.WriteLine("Number: " + iTmp);
            }
           
            Array.Sort(iArr, new Comparison<int>((i1, i2) => i2.CompareTo(i1)));

            Console.WriteLine("--------- After sort.");
            foreach (int iTmp in iArr)
            {
                Console.WriteLine("Number: " + iTmp);
            }

            Console.ReadLine();

        }
    }
}


Kết quả - Result
















No comments:

Post a Comment