Sắp xếp dữ liệu

Nơi trao đổi về các vấn đề trong lập trình Windows Forms, Console dùng cú pháp ngôn ngữ Visual Basic .NET và C#

Moderators: tungblt, vuathongtin

Post Reply
tuan.vn.com
Thành viên chính thức
Thành viên chính thức
Posts: 10
Joined: Thu 15/03/2018 2:49 pm
Has thanked: 4 times

Sắp xếp dữ liệu

Post by tuan.vn.com »

Xin chào các anh chị, chả là e có viết 1 đoạn sắp xếp như sau ạ:
Capture.PNG
Capture.PNG (5.14 KiB) Viewed 277 times
nhưng đến khi chạy xong thì nó ra như sau ạ:
Capture2.PNG
Capture2.PNG (4.27 KiB) Viewed 277 times
(cái ông số 10 nó lại nằm giữa 1 và 1a)
Xin hỏi các bác, giờ e cần sắp xếp theo thứ tự
1
1a
3
4
5
10
thì làm thế nào ạ, xin các bác chỉ giáo ạ
Cám ơn các bác nhiều ạ
User avatar
thuanfun
Thành viên tích cực
Thành viên tích cực
Posts: 153
Joined: Thu 06/11/2008 7:46 pm
Been thanked: 14 times

Re: Sắp xếp dữ liệu

Post by thuanfun »

Bạn cần rõ ràng kiểu dữ liệu Chuỗi (String) và Số (Integer/Double/...).
Trong code của bạn ở trên, bạn khai báo mảng String và gán cho nó các số (5,4,10,1,3) và chuỗi "1a". Sau khi gán, các số của bạn sẽ tự động được chuyển thành chuỗi ký tự ("5", "4", "10", "1", "3").
Hàm Array.Sort sắp xếp mảng ký tự cho kết quả như vậy là hoàn toàn chính xác.

Để sắp xếp mảng String mà lại tăng dần theo kiểu mảng Số thì cần mẹo một chút, tùy thực tế.
Trong ví dụ của bạn nên khai báo là mảng Double.
Dim arr(5) As Double
arr(0) = 5
arr(1) = 4
arr(2) = 10
arr(3) = 1.1 'Thay cho "1a"
arr(4) = 1
arr(5) = 3

Array.Sort(arr)
...
Nhận code VB.NET theo yêu cầu
Post Reply

Return to “Visual Basic .NET và C# (VB.NET & C#)”