Của e đây, e tham khảo nhé, a mới chỉ sort theo họ và tên, e có thể tự tạo thêm các class để có thể sort theo id và lương.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
namespace DemoArrarList
{
class Program
{
public class Account
{
public string sID { get; set; }
public string sTen { get; set; }
public string sHo { get; set; }
public double dLuong { get; set; }
public Account(string id, string ten, string ho, double luong)
{
sID = id;
sTen = ten;
sHo = ho;
dLuong = luong;
}
public void print()
{
Console.WriteLine("Id= {0},Ten={1}, Ho={2}", sID, sTen, sHo);
}
}
public class ListAccount
{
public ArrayList _listAcccount = new ArrayList();
public void PrintList()
{
foreach (Account ac in _listAcccount)
{
ac.print();
}
}
}
public class SortTheoHo : IComparer //Tao 1 class sort theo ho
{
int IComparer.Compare(object x, object y)
{
Account _acount1 = x as Account;
Account _acount2 = y as Account;
return String.Compare(_acount1.sHo, _acount2.sHo);
}
}
public class SortTheoTen : IComparer //Tao 1 class sort theo ten
{
int IComparer.Compare(object x, object y)
{
Account _acount1 = x as Account;
Account _acount2 = y as Account;
return String.Compare(_acount1.sTen, _acount2.sTen);
}
}
static void Main(string[] args)
{
Account _ac1 = new Account("001", "TenA", "Nguyen", 3000);
Account _ac2 = new Account("002", "TenB", "Le", 3000);
ListAccount listAcount = new ListAccount();
listAcount._listAcccount.Add(_ac1);
listAcount._listAcccount.Add(_ac2);
Console.WriteLine("Before sort....");
listAcount.PrintList();
listAcount._listAcccount.Sort(new SortTheoHo()); //Sort theo ho
Console.WriteLine("After sort theo ho....");
listAcount.PrintList();
listAcount._listAcccount.Sort(new SortTheoTen()); //Sort theo ten
Console.WriteLine("After sort theo ten....");
listAcount.PrintList();
Console.ReadLine();
}
}
}