IComparer IComparer IComparer IComparer Interface

Definition

Stellt eine Methode für den Vergleich zweier Objekte bereit.Exposes a method that compares two objects.

public interface class IComparer
[System.Runtime.InteropServices.ComVisible(true)]
public interface IComparer
type IComparer = interface
Public Interface IComparer
Abgeleitet
Attribute

Beispiele

Im folgenden Beispiel wird die IComparer Schnittstelle, um ein Zeichenfolgen-Array zu sortieren.The following example uses the IComparer interface to sort a string array. In diesem Beispiel die Compare Methode wird implementiert, mit der CaseInsensitiveComparer Klasse, um die Reihenfolge der der Inhalt des Arrays umzukehren.In this example, the Compare method is implemented using the CaseInsensitiveComparer class to reverse the order of the contents of the array.

using System;
using System.Collections;

public class Example  
{
   public class ReverserClass : IComparer  
   {
      // Call CaseInsensitiveComparer.Compare with the parameters reversed.
      int IComparer.Compare(Object x, Object y)  
      {
          return ((new CaseInsensitiveComparer()).Compare(y, x));
      }
   }

   public static void Main()  
   {
      // Initialize a string array.
      string[] words = { "The", "quick", "brown", "fox", "jumps", "over",
                         "the", "lazy", "dog" };
 
      // Display the array values.
      Console.WriteLine("The array initially contains the following values:" );
      PrintIndexAndValues(words);
 
      // Sort the array values using the default comparer.
      Array.Sort(words);
      Console.WriteLine("After sorting with the default comparer:" );
      PrintIndexAndValues(words);

      // Sort the array values using the reverse case-insensitive comparer.
      Array.Sort(words, new ReverserClass());
      Console.WriteLine("After sorting with the reverse case-insensitive comparer:");
      PrintIndexAndValues(words);

   }
 
   public static void PrintIndexAndValues(IEnumerable list)  
   {
      int i = 0;
      foreach (var item in list )
         Console.WriteLine($"   [{i++}]:  {item}");

      Console.WriteLine();
   }

}
// The example displays the following output:
//       The array initially contains the following values:
//          [0]:  The
//          [1]:  quick
//          [2]:  brown
//          [3]:  fox
//          [4]:  jumps
//          [5]:  over
//          [6]:  the
//          [7]:  lazy
//          [8]:  dog
//       
//       After sorting with the default comparer:
//          [0]:  brown
//          [1]:  dog
//          [2]:  fox
//          [3]:  jumps
//          [4]:  lazy
//          [5]:  over
//          [6]:  quick
//          [7]:  the
//          [8]:  The
//       
//       After sorting with the reverse case-insensitive comparer:
//          [0]:  the
//          [1]:  The
//          [2]:  quick
//          [3]:  over
//          [4]:  lazy
//          [5]:  jumps
//          [6]:  fox
//          [7]:  dog
//          [8]:  brown
Imports System.Collections

Public Class Example
   Public Class ReverserClass : Implements IComparer
      ' Call CaseInsensitiveComparer.Compare with the parameters reversed.
      Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer _
             Implements IComparer.Compare
         Return New CaseInsensitiveComparer().Compare(y, x)
      End Function 
   End Class

   Public Shared Sub Main()
      ' Initialize a string array.
      Dim words() As String = { "The", "quick", "brown", "fox", "jumps", "over",
                         "the", "lazy", "dog" }

      ' Display the array values.
      Console.WriteLine("The array initially contains the following values:")
      PrintIndexAndValues(words)

      ' Sort the array values of the ArrayList using the default comparer.
      Array.Sort(words)
      Console.WriteLine("After sorting with the default comparer:")
      PrintIndexAndValues(words)

      ' Sort the array values using the reverse case-insensitive comparer.
      Array.Sort(words, new ReverserClass())
      Console.WriteLine("After sorting with the reverse case-insensitive comparer:")
      PrintIndexAndValues(words)
   End Sub 

   Public Shared Sub PrintIndexAndValues(list As IEnumerable)
      Dim i As Integer = 0
      For Each item In  list
         Console.WriteLine($"   [{i}]:  {item}")
         i += 1
      Next
      Console.WriteLine()
   End Sub 
End Class
' The example displays the following output:
'       The array initially contains the following values:
'          [0]:  The
'          [1]:  quick
'          [2]:  brown
'          [3]:  fox
'          [4]:  jumps
'          [5]:  over
'          [6]:  the
'          [7]:  lazy
'          [8]:  dog
'       
'       After sorting with the default comparer:
'          [0]:  brown
'          [1]:  dog
'          [2]:  fox
'          [3]:  jumps
'          [4]:  lazy
'          [5]:  over
'          [6]:  quick
'          [7]:  the
'          [8]:  The
'       
'       After sorting with the reverse case-insensitive comparer:
'          [0]:  the
'          [1]:  The
'          [2]:  quick
'          [3]:  over
'          [4]:  lazy
'          [5]:  jumps
'          [6]:  fox
'          [7]:  dog
'          [8]:  brown

Hinweise

Diese Schnittstelle wird verwendet, in Verbindung mit der Array.Sort und Array.BinarySearch Methoden.This interface is used in conjunction with the Array.Sort and Array.BinarySearch methods. Es bietet eine Möglichkeit, die Sortierreihenfolge einer Sammlung anpassen.It provides a way to customize the sort order of a collection. Finden Sie unter den Compare Methode für die Hinweise zu Parametern und Rückgabewerten.See the Compare method for notes on parameters and return value. Die generische Entsprechung ist die System.Collections.Generic.IComparer<T> Schnittstelle.Its generic equivalent is the System.Collections.Generic.IComparer<T> interface.

Die standardmäßige Implementierung dieser Schnittstelle ist die Comparer Klasse.The default implementation of this interface is the Comparer class. Die generische Version dieser Schnittstelle finden Sie unter System.Collections.Generic.IComparer<T>.For the generic version of this interface, see System.Collections.Generic.IComparer<T>.

Methoden

Compare(Object, Object) Compare(Object, Object) Compare(Object, Object) Compare(Object, Object)

Vergleicht zwei Objekte und gibt einen Wert zurück, der angibt, ob ein Wert niedriger, gleich oder größer als der andere Wert ist.Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other.

Gilt für:

Siehe auch