对象如何实现排序

 static void Main(string[] args)
        {
            string Continue="";//用来保存是否还需要交易标志
            ListAccount > listAccounts= new List<Account> { new Account(101), new Account(102), new Account(99), new Account(250), new Account(200) };
            foreach (Account item in listAccounts)
            {
                Console.WriteLine(item.Balance);
            }
            Console.WriteLine("***************************************");
            listAccounts.Sort();
 
            foreach (Account item in listAccounts)
            {
                Console.WriteLine(item.Balance);
            }
            Console.Read();
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Collections;
 
namespace Banking
{
    class Account:IComparable
    {
 
        public Account()
        {
 
        }
        public Account(int balance)
        {
            this.balance = balance;
 
        }
        private int balance;
 
        public int Balance
        {
            get { return balance; }
            set             
            {
                if (value<=0)
                {
                    this.balance = 0;
                }
                else
                {
                    this.balance = value;
                }
            }
        }
 
        public bool Deposit(int deposit)
        {
 
            if (deposit<=0)
            {
                Console.WriteLine("输入的存款数目不能为负数,请重新输入:");
                return false ;
            }
            Mutex mutex = new Mutex(true"Mutex1");
            mutex.WaitOne();
            this.balance += deposit;
            mutex.Close();
            Console.WriteLine("系统正在处理,请耐心等待...");
            Thread.Sleep(3000);
            Console.WriteLine("存款交易成功!");
            Thread.Sleep(2000);
            return true;
        }
 
        public bool WithDraw(int draw)
        {
            if (draw<0)
            {
                Console.WriteLine("输入的取款数目不能为负数,请重新输入:");
                return false;
            }
            if (draw>this.balance)
            {
                Console.WriteLine("你的余额不足以支付你的申请金额,请重新输入:");
                return false;
            }
            Mutex mutex = new Mutex(true"Mutex2");
            mutex.WaitOne();
            this.balance -= draw;
            mutex.Close();
            Console.WriteLine("系统正在处理,请耐心等待...");
            Thread.Sleep(3000);
            Console.WriteLine("取款交易成功!");
            Thread.Sleep(2000);
            return true;
        }
        public int CompareTo(object obj)
        {
            Account a = obj as Account;
            if (this.Balance > a.Balance)
            {
                return 1;
            }
            else if (this.Balance < a.Balance)
            {
                return -1;
            }
            else if (this.Balance == a.Balance)
            {
                return 0;
            }
 
            return 2;
        }
    }
}
posted @ 2013-04-16 18:27  Predator  阅读(167)  评论(0编辑  收藏  举报