Auf Englisch lesen

Teilen über


IComparer Schnittstelle

Definition

Macht eine Methode verfügbar, die zwei Objekte vergleicht.

C#
public interface IComparer
C#
[System.Runtime.InteropServices.ComVisible(true)]
public interface IComparer
Abgeleitet
Attribute

Beispiele

Im folgenden Beispiel wird die IComparer Schnittstelle verwendet, um ein Zeichenfolgenarray zu sortieren. In diesem Beispiel wird die Compare -Methode mithilfe der CaseInsensitiveComparer -Klasse implementiert, um die Reihenfolge des Inhalts des Arrays umzukehren.

C#
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

Hinweise

Diese Schnittstelle wird in Verbindung mit den Array.Sort Methoden und Array.BinarySearch verwendet. Es bietet eine Möglichkeit, die Sortierreihenfolge einer Sammlung anzupassen. Hinweise zu Parametern und Rückgabewert finden Sie in der Compare -Methode. Die generische Entsprechung ist die System.Collections.Generic.IComparer<T> Schnittstelle.

Die Standardimplementierung dieser Schnittstelle ist die Comparer -Klasse. Die generische Version dieser Schnittstelle finden Sie unter System.Collections.Generic.IComparer<T>.

Methoden

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.

Gilt für:

Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Weitere Informationen