// 使得可以按照多种风格排序 public override int Compare(long lPtr1, long lPtr2) { if (lPtr1 < 0 && lPtr2 < 0) { return(0); } else if (lPtr1 >= 0 && lPtr2 < 0) { return(1); } else if (lPtr1 < 0 && lPtr2 >= 0) { return(-1); } DupLineItem item1 = (DupLineItem)GetCompareItemByOffset(lPtr1); DupLineItem item2 = (DupLineItem)GetCompareItemByOffset(lPtr2); if (this.SortStyle == DupResultSetSortStyle.Path) { return(item1.CompareTo(item2)); } else if (this.SortStyle == DupResultSetSortStyle.Weight) { return(item1.CompareWeightTo(item2)); } else if (this.SortStyle == DupResultSetSortStyle.OverThreshold) { return(item1.CompareOverThresholdTo(item2)); } else { Debug.Assert(false, "invalid sort style"); return(0); } }