⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 projectcomparation.cs

📁 V2005+SQL 2005 数据库与网络开发典型系统时间跟增系统
💻 CS
字号:
using System;
using System.Collections.Generic;
namespace
ASPNET.StarterKit.BusinessLogicLayer {
  /// <summary>
  /// 自定义的排序比较器
  /// </summary>
  public class ProjectComparer : IComparer<Project> {
   /***私有字段****/
    private string _sortColumn;
    private bool _reverse;
    /***构造函数****/
    /// <summary>
    /// 构造函数,传入按指定排序字符串,例如:CompletionDate desc或者是Description 
    /// </summary>
    /// <param name="sortEx"></param>
    public ProjectComparer(string sortEx) {
      if (!String.IsNullOrEmpty(sortEx))
      {
        _reverse = sortEx.ToLowerInvariant().EndsWith(" desc");
        if (_reverse)
          _sortColumn = sortEx.Substring(0, sortEx.Length - 5);
        else
          _sortColumn = sortEx;
      }
    }
   /****方法*******/
      /// <summary>
      /// 判断两个项目是否相等
      /// </summary>
      /// <param name="x"></param>
      /// <param name="y"></param>
      /// <returns></returns>
    public bool Equals(Project x, Project y) {
      if (x.Id == y.Id) {
        return true;
      }
      else {
        return false;
      }
    }
    /// <summary>
    /// 比较两个项目。实现IComparer接口的方法
    /// </summary>
    /// <param name="x"></param>
    /// <param name="y"></param>
    /// <returns></returns>
    public int Compare(Project x, Project y) {
      int retVal = 0;
      switch (_sortColumn) {
        //如果排序列是CompletionDate,表示按完成时间排序
        case "CompletionDate":
          retVal = DateTime.Compare(x.CompletionDate, y.CompletionDate);
          break;
        //如果排序列是Description,表示按项目描述排序
        case "Description":
          retVal = String.Compare(x.Description, y.Description, StringComparison.InvariantCultureIgnoreCase);
          break;
       //如果排序列是EstimateDuration,表示按预估时间排序
        case "EstimateDuration":
          retVal = (int)(x.EstimateDuration - y.EstimateDuration);
          break;
       //如果排序列是Id,表示按项目ID排序
        case "Id":
          retVal = (x.Id - y.Id);
          break;
      //如果排序列是ManagerUserName,表示按项目经理排序
        case "ManagerUserName":
          retVal = String.Compare(x.ManagerUserName, y.ManagerUserName, StringComparison.InvariantCultureIgnoreCase);
          break;
      //如果排序列是Name,表示按项目名称排序
        case "Name":
          retVal = String.Compare(x.Name, y.Name, StringComparison.InvariantCultureIgnoreCase);
          break;
      }
      return (retVal * (_reverse ? -1 : 1));
    }
    public int GetHashCode(Project obj) {
      // TODO: Implement this, but it's not necessary for sorting
      return 0;
    }
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -