Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Khác biệt giữa IComparable và IComparer Interface trong C#


IComparable Interface trong C#

Sử dụng IComparable Interface trong C# để sắp xếp các phần tử. Nó cũng được dùng để so sánh instance hiện tại với đối tượng khác cùng kiểu.

Nó cung cấp phương pháp so sánh hai đối tượng của một kiểu cụ thể. Nhớ rằng, khi triển khai interface IComparable, phương thức CompareTo() cũng phải được triển khai.

Hãy xem ví dụ:

int IComparable.CompareTo(object ob) { 
    Vehicle v = (Vehicle)ob; 
    return String.Compare(this.make, v.make); 
}

IComparer interface trong C#

IComparer interface được dùng để sắp xếp các phần tử so sánh hai đối tượng và cung cấp phương pháp so sánh bổ sung.

Ví dụ

private class sortYearAscendingHelper : IComparer { 
    int IComparer.Compare(object ob1, object ob2) { 
        Vehicle v1 = (Vehicle)ob1; 
        Vehicle v2 = (Vehicle)ob2; 
        if (v1.year > v2.year) 
            return 1; 
        if (v1.year < v2.year) 
            return -1; 
        else 
            return 0; 
    } 
}

Bây giờ trả về instance của đối tượng IComparer.

public static IComparer sortYearAscending() { 
    return (IComparer)new sortYearAscendingHelper(); 
}