zoukankan      html  css  js  c++  java
  • C# 自定义排序

    /// <summary>
    /// 实体
    /// </summary>
    public class Product
    {
    public int ID { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
    public DateTime PublishDate { get; set; }
    }
    /// <summary>
    /// 实体集合
    /// </summary>
    public class PrductList
    {
    public List<Product> Books { get; set; }
    }

    //一个排序依据枚举:
    public enum ComparisonType
    {
    Price, PublishDate
    }

    //一个排序基类,实现具体排序
    public class BookComparison : IComparer<Product>
    {
    private ComparisonType type;

    public BookComparison(ComparisonType type)
    {
    this.type = type;
    }

    public int Compare(Product x, Product y)
    {
    int order = 0;
    switch (this.type)
    {
    case ComparisonType.Price:
    order = y.Price.CompareTo(x.Price);//更换x和y的顺序可以实现升序或者降序功能
    break;
    case ComparisonType.PublishDate:
    order = y.PublishDate.CompareTo(x.PublishDate);//更换x和y的顺序可以实现升序或者降序功能
    break;
    default:
    break;
    }
    int d = order;
    return order;
    }
    }
    public class MyTest
    {
    public void test()
    {
    PrductList list = new PrductList();
    List<Product> Books = new List<Product>();
    list.Books = Books;
    list.Books.Add(new Product()
    {
    ID = 1,
    Name = "LiSi",
    Price = 12.5M,
    PublishDate = DateTime.Parse("2016-06-03")
    });
    list.Books.Add(new Product()
    {
    ID = 1,
    Name = "Zhangsan",
    Price = 12.8M,
    PublishDate = DateTime.Parse("2016-06-05")
    });
    list.Books.Add(new Product()
    {
    ID = 1,
    Name = "Wangwu",
    Price = 11.5M,
    PublishDate = DateTime.Parse("2016-06-01")
    });
    list.Books.Sort(new BookComparison(ComparisonType.Price).Compare);
    foreach (var item in list.Books)
    {
    Console.WriteLine(string.Format("{0}:{1}, {2}", item.Name, item.Price, item.PublishDate.ToString()));
    }
    }
    }

  • 相关阅读:
    selenium+python常用函数
    不同网络层的协议与工具
    Loudrunner编写WinSocket接口测试脚本
    python常见问题汇总
    Appium简介及工作原理
    Http协议详解
    Selenium 工作原理
    HTTP与HTTPS有哪些区别?
    【Appium】Appium工作原理(2)
    MySQL 必知必会学习笔记(常用命令二)
  • 原文地址:https://www.cnblogs.com/niuzaihenmang/p/5620595.html
Copyright © 2011-2022 走看看