use*_*847 1 c# java icomparable comparator
我想将以下类从 java 转换为 C#:
public class ValueComparator implements Comparator{
    @Override
    public int compare(Object ob1, Object ob2){
        int retval = 0;
        if ( ob1 instanceof DataCol && ob2 instanceof DataCol ){
            DataCol c1 = (DataCol) ob1;
            DataCol c2 = (DataCol) ob2;
            if( c1.value < c2.value ) retval = 1;
            if( c1.value > c2.value ) retval = -1;
        } else {
            throw new ClassCastException("ValueComparator: Illegal arguments!");
        }
        return(retval);
    }    
}
您可以IComparer<T>通过继承自Comparer<T>.
class DataColComparer:Comparer<DataCol>
{
    public override int Compare(DataCol x, DataCol y)
    {
       if(ReferenceEquals(x,y))
         return 0;
       if(x==null)
         return -1;
       if(y==null)
         return +1;
       return Comparer<TValue>.Default.Compare(y.Value, x.Value);
    }
}
| 归档时间: | 
 | 
| 查看次数: | 8253 次 | 
| 最近记录: |