现在的位置: 首页 > 综合 > 正文

c# List排序

2013年05月10日 ⁄ 综合 ⁄ 共 2161字 ⁄ 字号 评论关闭
 //Book 类
    public class Book
    {
        public Book(string inname, string inauthor, string inpublisher, int inprice)
        {
            this.Name = inname;
            this.Author = inauthor;
            this.Publisher = inpublisher;
            this.Price = inprice;
        }

        private string name;

        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        private string author;

        public string Author
        {
            get { return author; }
            set { author = value; }
        }
        private string publisher;

        public string Publisher
        {
            get { return publisher; }
            set { publisher = value; }
        }
        private int price;

        public int Price
        {
            get { return price; }
            set { price = value; }
        }
    }
 //比较器类

    public class Icp : IComparer<Book>
    {
        //按书名排序
        public int Compare(Book x, Book y)
        {
            return x.Name.CompareTo(y.Name);
        }
    }

    public class IcpPrice : IComparer<Book>
    {
        //按价格排序
        public int Compare(Book x, Book y)
        {
            return x.Price.CompareTo(y.Price);
        }
    }
 //main方法
        static void Main(string[] args)
        {
            List<Book> list = new List<Book>();
            Book b1, b2, b3, b4;
            b1 = new Book("《绝代双骄》", "古龙", "中国长安出版社", 50);
            b2 = new Book("《鹿鼎记》", "金庸", "人民文学出版社", 120);
            b3 = new Book("《三国演义》", "罗贯中", "中州古籍出版社", 200);
            b4 = new Book("《西游记》", "吴承恩", "晨光出版社", 80);
            list.Add(b1);
            list.Add(b2);
            list.Add(b3);
            list.Add(b4);

            //按书名升序
            Console.WriteLine("/////////////按书名升序/////////////");
            list.Sort(new Icp());
            foreach (Book book in list)
            {
                Console.WriteLine(book.Name + book.Author + book.Publisher + book.Price);
            }
            Console.WriteLine("////////////////////////////////////");

            //按价格降序序
            Console.WriteLine("/////////////按价格升序/////////////");
            list.Sort(new IcpPrice());

            foreach (Book book in list)
            {
                Console.WriteLine(book.Name + book.Author + book.Publisher + book.Price);
            }
            Console.WriteLine("////////////////////////////////////");

            Console.Read();
        }
【上篇】
【下篇】

抱歉!评论已关闭.