Dạ anh chị và các bạn cho em hỏi phương thức CompareTo() của class XeDap , em muốn nó sort ra từ lớn đến nhỏ nhưng nó lại sort ra từ nhỏ đến lớn thì phải làm sao ạ, mong anh chị và các bạn giải đáp.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace XeDap
{
class Xe
{
public string hoTen;
public string ID;
public int soGioThue;
public int soTienThue;
public void Info()
{
Console.Write("Nhap ho va ten :");
hoTen = Convert.ToString(Console.ReadLine());
Console.Write("Nhap ID:");
ID = Convert.ToString(Console.ReadLine());
Console.Write("Nhap so gio thue xe :");
soGioThue = Convert.ToInt32(Console.ReadLine());
}
public void Xuat()
{
Console.WriteLine("Sau khi nhap thong tin thue xe");
Console.WriteLine("Ho ten: " + hoTen);
Console.WriteLine("ID: " + ID);
Console.WriteLine("So gio thue xe la: " + soGioThue);
}
}
class XeDap : Xe, IComparable
{
public int CompareTo(object xe)
{
XeDap xe1 = xe as XeDap;
if (this.soGioThue > xe1.soGioThue)
return -1;
else if (this.soGioThue < xe1.soGioThue)
return 1;
else
return 0;
}
public void inFoXeDap()
{
base.Info();
if (soGioThue == 0)
soTienThue = 0;
else
soTienThue = 10000 * (soGioThue - (soGioThue - 1)) + 8000 * (soGioThue - 1);
}
public void xuatThongTinXeDap()
{
base.Xuat();
Console.WriteLine("So tien thue xe dap la:" + soTienThue);
Console.WriteLine("-----------------------------");
}
public override string ToString()
{
return "Ho ten: " + hoTen + " va so tien thue xe la:" + soTienThue;
}
}
class Program
{
static void Main(string[] args)
{
int soLuongKhachHang, i;
Console.Write("Nhap so luong khach hang: ");
soLuongKhachHang = Convert.ToInt32(Console.ReadLine());
XeDap[] dap = new XeDap[soLuongKhachHang];
ArrayList SortXe = new ArrayList();
for (i = 0; i < soLuongKhachHang; i++)
{
dap[i] = new XeDap();
dap[i].inFoXeDap();
dap[i].xuatThongTinXeDap();
}
for (i = 0; i < soLuongKhachHang; i++)
{
SortXe.Add(dap[i]);
}
SortXe.Sort();
Console.WriteLine("Sau khi sap xep:");
for (i = 0; i < soLuongKhachHang; i++)
{
Console.WriteLine(dap[i].ToString());
}
Console.ReadKey();
}
}
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?