Bewerken

Delen via


Comparer<T>.Default Property

Definition

Returns a default sort-order comparer for the type specified by the generic argument.

public:
 static property System::Collections::Generic::Comparer<T> ^ Default { System::Collections::Generic::Comparer<T> ^ get(); };
public static System.Collections.Generic.Comparer<T> Default { get; }
static member Default : System.Collections.Generic.Comparer<'T>
Public Shared ReadOnly Property Default As Comparer(Of T)

Property Value

An object that inherits Comparer<T> and serves as a sort-order comparer for type T.

Examples

The following example shows how to use the Default property to get an object that performs the default comparison. This example is part of a larger example provided for the Comparer<T> class.

// Get the default comparer that
// sorts first by the height.
Comparer<Box> defComp = Comparer<Box>.Default;

// Calling Boxes.Sort() with no parameter
// is the same as calling Boxs.Sort(defComp)
// because they are both using the default comparer.
Boxes.Sort();

foreach (Box bx in Boxes)
{
    Console.WriteLine("{0}\t{1}\t{2}",
        bx.Height.ToString(), bx.Length.ToString(),
        bx.Width.ToString());
}
// Get the default comparer that
// sorts first by the height.
let defComp = Comparer<Box>.Default

// Calling Boxes.Sort() with no parameter
// is the same as calling boxes.Sort defComp
// because they are both using the default comparer.
boxes.Sort()

for bx in boxes do
    printfn $"{bx.Height}\t{bx.Length}\t{bx.Width}"
' Get the default comparer that 
' sorts first by the height.
Dim defComp As Comparer(Of Box) = Comparer(Of Box).Default

' Calling Boxes.Sort() with no parameter
' is the same as calling Boxs.Sort(defComp)
' because they are both using the default comparer.
Boxes.Sort()

For Each bx As Box In Boxes
    Console.WriteLine("{0}" & vbTab & "{1}" & vbTab & "{2}", _
                      bx.Height.ToString(), _
                      bx.Length.ToString(), _
                      bx.Width.ToString())
Next bx

Remarks

The Comparer<T> returned by this property uses the System.IComparable<T> generic interface (IComparable<T> in C#, IComparable(Of T) in Visual Basic) to compare two objects. If type T does not implement the System.IComparable<T> generic interface, this property returns a Comparer<T> that uses the System.IComparable interface.

Notes to Callers

For string comparisons, the StringComparer class is recommended over Comparer<String> (Comparer(Of String) in Visual Basic). Properties of the StringComparer class return predefined instances that perform string comparisons with different combinations of culture-sensitivity and case-sensitivity. The case-sensitivity and culture-sensitivity are consistent among the members of the same StringComparer instance.

For more information on culture-specific comparisons, see the System.Globalization namespace and Globalization and Localization.

Applies to

See also