Číst v angličtině

Sdílet prostřednictvím


IComparer Rozhraní

Definice

Zpřístupňuje metodu, která porovnává dva objekty.

public interface IComparer
[System.Runtime.InteropServices.ComVisible(true)]
public interface IComparer
Odvozené
Atributy

Příklady

Následující příklad používá IComparer rozhraní k řazení pole řetězců. V tomto příkladu je metoda implementována Compare pomocí CaseInsensitiveComparer třídy pro obrácení pořadí obsahu pole.

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

Poznámky

Toto rozhraní se používá ve spojení s metodami Array.Sort a Array.BinarySearch . Poskytuje způsob, jak přizpůsobit pořadí řazení kolekce. V metodě najdete Compare poznámky k parametrům a návratové hodnotě. Jeho obecným ekvivalentem System.Collections.Generic.IComparer<T> je rozhraní.

Výchozí implementace tohoto rozhraní je Comparer třída. Obecnou verzi tohoto rozhraní najdete v tématu System.Collections.Generic.IComparer<T>.

Metody

Compare(Object, Object)

Porovná dva objekty a vrátí hodnotu označující, zda je jeden menší než, roven nebo větší než druhý.

Platí pro

Produkt Verze
.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

Viz také