categoriescollection.cs
来自「一个采用三层架构开放的办公自动化系统」· CS 代码 · 共 66 行
CS
66 行
using System;
using System.Collections;
namespace qminoa.BLL.PM
{
public class CategoriesCollection : ArrayList
{
public enum CategoryFields
{
Abbreviation,
Duration,
InitValue,
Name
}
public void Sort(CategoryFields sortField, bool isAscending)
{
switch (sortField)
{
case CategoryFields.Name:
base.Sort(new NameComparer());
break;
case CategoryFields.Abbreviation:
base.Sort(new AbbreviationComparer());
break;
case CategoryFields.Duration:
base.Sort(new DurationComparer());
break;
}
if (!isAscending) base.Reverse();
}
private sealed class NameComparer : IComparer
{
public int Compare(object x, object y)
{
Category first = (Category) x;
Category second = (Category) y;
return first.Name.CompareTo(second.Name);
}
}
private sealed class AbbreviationComparer : IComparer
{
public int Compare(object x, object y)
{
Category first = (Category) x;
Category second = (Category) y;
return first.Abbreviation.CompareTo(second.Abbreviation);
}
}
private sealed class DurationComparer : IComparer
{
public int Compare(object x, object y)
{
Category first = (Category) x;
Category second = (Category) y;
return first.EstDuration.CompareTo(second.EstDuration);
}
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?