• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

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

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

Postby tuan.vn.com » Thu 03/09/2020 8:38 am

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 174 times

nhưng đến khi chạy xong thì nó ra như sau ạ:
Capture2.PNG
Capture2.PNG (4.27 KiB) Viewed 174 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

Postby thuanfun » Fri 04/09/2020 8:53 pm

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


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

Who is online

Users browsing this forum: No registered users and 20 guests