Ejemplo n.º 1
0
        // 使得可以按照多种风格排序
        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);
            }
        }