public int Compare(SysFileIf x, SysFileIf y, SortField field, SortDirectrion direction) { int result = 0; switch (field) { case SortField.Name: if (direction == SortDirectrion.Ascending) { result = x.Name.CompareTo(y.Name); } else { result = y.Name.CompareTo(x.Name); } break; case SortField.Type: if (direction == SortDirectrion.Ascending) { result = x.Type.CompareTo(y.Type); } else { result = y.Type.CompareTo(x.Type); } break; case SortField.Size: if (direction == SortDirectrion.Ascending) { result = x.SizeValue.CompareTo(y.SizeValue); } else { result = y.SizeValue.CompareTo(x.SizeValue); } break; case SortField.CreateTime: if (direction == SortDirectrion.Ascending) { result = x.CreateDateTime.CompareTo(y.CreateDateTime); } else { result = y.CreateDateTime.CompareTo(x.CreateDateTime); } break; case SortField.WriteTime: if (direction == SortDirectrion.Ascending) { result = x.WriteDateTime.CompareTo(y.WriteDateTime); } else { result = y.WriteDateTime.CompareTo(x.WriteDateTime); } break; } return(result); }
public SysSorter(SortField sfield, SortDirectrion sDirect = SortDirectrion.Ascending) { this.field = sfield; this.direction = sDirect; }