次の方法で共有


Array.Sort メソッド

1 次元 Array オブジェクト内の要素を並べ替えます。

オーバーロードの一覧

Array の各要素によって実装された IComparable インターフェイスを使用して、1 次元 Array 全体の要素を並べ替えます。

.NET Compact Framework でもサポート。

[Visual Basic] Overloads Public Shared Sub Sort(Array)

[C#] public static void Sort(Array);

[C++] public: static void Sort(Array*);

[JScript] public static function Sort(Array);

2 つの 1 次元 Array オブジェクト (一方のオブジェクトがキーを格納し、他方のオブジェクトがそれらに対応する項目を格納する) を、最初の Array 内のキーに基づき、各キーによって実装された IComparable インターフェイスを使用して並べ替えます。

[Visual Basic] Overloads Public Shared Sub Sort(Array, Array)

[C#] public static void Sort(Array, Array);

[C++] public: static void Sort(Array*, Array*);

[JScript] public static function Sort(Array, Array);

1 次元 Array 内の要素を、指定した IComparer インターフェイスを使用して並べ替えます。

[Visual Basic] Overloads Public Shared Sub Sort(Array, IComparer)

[C#] public static void Sort(Array, IComparer);

[C++] public: static void Sort(Array*, IComparer*);

[JScript] public static function Sort(Array, IComparer);

2 つの 1 次元 Array オブジェクト (一方のオブジェクトがキーを格納し、他方のオブジェクトがそれらに対応する項目を格納する) を、最初の Array 内のキーに基づき、指定した IComparer インターフェイスを使用して並べ替えます。

[Visual Basic] Overloads Public Shared Sub Sort(Array, Array, IComparer)

[C#] public static void Sort(Array, Array, IComparer);

[C++] public: static void Sort(Array*, Array*, IComparer*);

[JScript] public static function Sort(Array, Array, IComparer);

Array の各要素によって実装された IComparable インターフェイスを使用して、1 次元 Array の範囲内の要素を並べ替えます。

[Visual Basic] Overloads Public Shared Sub Sort(Array, Integer, Integer)

[C#] public static void Sort(Array, int, int);

[C++] public: static void Sort(Array*, int, int);

[JScript] public static function Sort(Array, int, int);

2 つの 1 次元 Array オブジェクト (一方のオブジェクトがキーを格納し、他方のオブジェクトがそれらに対応する項目を格納する) を、最初の Array 内のキーに基づき、各キーによって実装された IComparable インターフェイスを使用して並べ替えます。

[Visual Basic] Overloads Public Shared Sub Sort(Array, Array, Integer, Integer)

[C#] public static void Sort(Array, Array, int, int);

[C++] public: static void Sort(Array*, Array*, int, int);

[JScript] public static function Sort(Array, Array, int, int);

1 次元 Array の範囲内の要素を、指定した IComparer インターフェイスを使用して並べ替えます。

.NET Compact Framework でもサポート。

[Visual Basic] Overloads Public Shared Sub Sort(Array, Integer, Integer, IComparer)

[C#] public static void Sort(Array, int, int, IComparer);

[C++] public: static void Sort(Array*, int, int, IComparer*);

[JScript] public static function Sort(Array, int, int, IComparer);

2 つの 1 次元 Array オブジェクト (一方のオブジェクトがキーを格納し、他方のオブジェクトがそれらに対応する項目を格納する) を、最初の Array 内のキーに基づき、指定した IComparer インターフェイスを使用して並べ替えます。

.NET Compact Framework でもサポート。

[Visual Basic] Overloads Public Shared Sub Sort(Array, Array, Integer, Integer, IComparer)

[C#] public static void Sort(Array, Array, int, int, IComparer);

[C++] public: static void Sort(Array*, Array*, int, int, IComparer*);

[JScript] public static function Sort(Array, Array, int, int, IComparer);

使用例

[Visual Basic, C#, C++] キーと値をそれぞれ含む 2 つの関連付けられた配列を並べ替える方法を次の例に示します。既定の比較演算子と並べ替え順序を反転するカスタム比較演算子を使用して並べ替えを行います。現在の CultureInfo によって結果が異なることがあります。

[Visual Basic, C#, C++] メモ   ここでは、Sort のオーバーロード形式のうちの 1 つだけについて、使用例を示します。その他の例については、各オーバーロード形式のトピックを参照してください。

 
Imports System
Imports System.Collections

Public Class SamplesArray

   Public Class myReverserClass
      Implements IComparer

      ' Calls CaseInsensitiveComparer.Compare with the parameters reversed.
      Function Compare(x As [Object], y As [Object]) As Integer _
         Implements IComparer.Compare
         Return New CaseInsensitiveComparer().Compare(y, x)
      End Function 'IComparer.Compare

   End Class 'myReverserClass


   Public Shared Sub Main()

      ' Creates and initializes a new Array and a new custom comparer.
      Dim myKeys As [String]() =  {"red", "GREEN", "YELLOW", "BLUE", "purple", "black", "orange"}
      Dim myValues As [String]() =  {"strawberries", "PEARS", "LIMES", "BERRIES", "grapes", "olives", "cantaloupe"}
      Dim myComparer = New myReverserClass()

      ' Displays the values of the Array.
      Console.WriteLine("The Array initially contains the following values:")
      PrintKeysAndValues(myKeys, myValues)

      ' Sorts a section of the Array using the default comparer.
      Array.Sort(myKeys, myValues, 1, 3)
      Console.WriteLine("After sorting a section of the Array using the default comparer:")
      PrintKeysAndValues(myKeys, myValues)

      ' Sorts a section of the Array using the reverse case-insensitive comparer.
      Array.Sort(myKeys, myValues, 1, 3, myComparer)
      Console.WriteLine("After sorting a section of the Array using the reverse case-insensitive comparer:")
      PrintKeysAndValues(myKeys, myValues)

      ' Sorts the entire Array using the default comparer.
      Array.Sort(myKeys, myValues)
      Console.WriteLine("After sorting the entire Array using the default comparer:")
      PrintKeysAndValues(myKeys, myValues)

      ' Sorts the entire Array using the reverse case-insensitive comparer.
      Array.Sort(myKeys, myValues, myComparer)
      Console.WriteLine("After sorting the entire Array using the reverse case-insensitive comparer:")
      PrintKeysAndValues(myKeys, myValues)

   End Sub 'Main


   Public Shared Sub PrintKeysAndValues(myKeys() As [String], myValues() As [String])

      Dim i As Integer
      For i = 0 To myKeys.Length - 1
         Console.WriteLine("   {0,-10}: {1}", myKeys(i), myValues(i))
      Next i
      Console.WriteLine()

   End Sub 'PrintKeysAndValues

End Class 'SamplesArray


'This code produces the following output.
'
'The Array initially contains the following values:
'   red       : strawberries
'   GREEN     : PEARS
'   YELLOW    : LIMES
'   BLUE      : BERRIES
'   purple    : grapes
'   black     : olives
'   orange    : cantaloupe
'
'After sorting a section of the Array using the default comparer:
'   red       : strawberries
'   BLUE      : BERRIES
'   GREEN     : PEARS
'   YELLOW    : LIMES
'   purple    : grapes
'   black     : olives
'   orange    : cantaloupe
'
'After sorting a section of the Array using the reverse case-insensitive comparer:
'   red       : strawberries
'   YELLOW    : LIMES
'   GREEN     : PEARS
'   BLUE      : BERRIES
'   purple    : grapes
'   black     : olives
'   orange    : cantaloupe
'
'After sorting the entire Array using the default comparer:
'   black     : olives
'   BLUE      : BERRIES
'   GREEN     : PEARS
'   orange    : cantaloupe
'   purple    : grapes
'   red       : strawberries
'   YELLOW    : LIMES
'
'After sorting the entire Array using the reverse case-insensitive comparer:
'   YELLOW    : LIMES
'   red       : strawberries
'   purple    : grapes
'   orange    : cantaloupe
'   GREEN     : PEARS
'   BLUE      : BERRIES
'   black     : olives


[C#] 
using System;
using System.Collections;

public class SamplesArray  {
 
   public class myReverserClass : IComparer  {

      // Calls CaseInsensitiveComparer.Compare with the parameters reversed.
      int IComparer.Compare( Object x, Object y )  {
          return( (new CaseInsensitiveComparer()).Compare( y, x ) );
      }

   }

   public static void Main()  {
 
      // Creates and initializes a new Array and a new custom comparer.
      String[] myKeys = { "red", "GREEN", "YELLOW", "BLUE", "purple", "black", "orange" };
      String[] myValues = { "strawberries", "PEARS", "LIMES", "BERRIES", "grapes", "olives", "cantaloupe" };
      IComparer myComparer = new myReverserClass();
 
      // Displays the values of the Array.
      Console.WriteLine( "The Array initially contains the following values:" );
      PrintKeysAndValues( myKeys, myValues );
 
      // Sorts a section of the Array using the default comparer.
      Array.Sort( myKeys, myValues, 1, 3 );
      Console.WriteLine( "After sorting a section of the Array using the default comparer:" );
      PrintKeysAndValues( myKeys, myValues );

      // Sorts a section of the Array using the reverse case-insensitive comparer.
      Array.Sort( myKeys, myValues, 1, 3, myComparer );
      Console.WriteLine( "After sorting a section of the Array using the reverse case-insensitive comparer:" );
      PrintKeysAndValues( myKeys, myValues );

      // Sorts the entire Array using the default comparer.
      Array.Sort( myKeys, myValues );
      Console.WriteLine( "After sorting the entire Array using the default comparer:" );
      PrintKeysAndValues( myKeys, myValues );

      // Sorts the entire Array using the reverse case-insensitive comparer.
      Array.Sort( myKeys, myValues, myComparer );
      Console.WriteLine( "After sorting the entire Array using the reverse case-insensitive comparer:" );
      PrintKeysAndValues( myKeys, myValues );

   }
 
   public static void PrintKeysAndValues( String[] myKeys, String[] myValues )  {
      for ( int i = 0; i < myKeys.Length; i++ )  {
         Console.WriteLine( "   {0,-10}: {1}", myKeys[i], myValues[i] );
      }
      Console.WriteLine();
   }
}


/* 
This code produces the following output.

The Array initially contains the following values:
   red       : strawberries
   GREEN     : PEARS
   YELLOW    : LIMES
   BLUE      : BERRIES
   purple    : grapes
   black     : olives
   orange    : cantaloupe

After sorting a section of the Array using the default comparer:
   red       : strawberries
   BLUE      : BERRIES
   GREEN     : PEARS
   YELLOW    : LIMES
   purple    : grapes
   black     : olives
   orange    : cantaloupe

After sorting a section of the Array using the reverse case-insensitive comparer:
   red       : strawberries
   YELLOW    : LIMES
   GREEN     : PEARS
   BLUE      : BERRIES
   purple    : grapes
   black     : olives
   orange    : cantaloupe

After sorting the entire Array using the default comparer:
   black     : olives
   BLUE      : BERRIES
   GREEN     : PEARS
   orange    : cantaloupe
   purple    : grapes
   red       : strawberries
   YELLOW    : LIMES

After sorting the entire Array using the reverse case-insensitive comparer:
   YELLOW    : LIMES
   red       : strawberries
   purple    : grapes
   orange    : cantaloupe
   GREEN     : PEARS
   BLUE      : BERRIES
   black     : olives

*/


[C++] 
#using <mscorlib.dll>

using namespace System;
using namespace System::Collections;

public __gc class myReverserClass : public IComparer
{
   // Calls CaseInsensitiveComparer::Compare with the parameters reversed.
   int IComparer::Compare(Object* x, Object* y) {
      return((new CaseInsensitiveComparer())->Compare(y, x));
   }
};

void PrintKeysAndValues(String* myKeys[], String* myValues[])
{
   for (int i = 0; i < myKeys->Length; i++) {
      Console::WriteLine(S" {0, -10}: {1}", myKeys->Item[i], myValues->Item[i]);
   }
   Console::WriteLine();
}

int main()
{
   // Creates and initializes a new Array and a new custom comparer.
   String* myKeys[] = { S"red", S"GREEN", S"YELLOW", S"BLUE", S"purple", S"black", S"orange" };
   String* myValues[] = { S"strawberries", S"PEARS", S"LIMES", S"BERRIES", S"grapes", S"olives", S"cantaloupe" };
   IComparer* myComparer = new myReverserClass();

   // Displays the values of the Array.
   Console::WriteLine(S"The Array initially contains the following values:");
   PrintKeysAndValues(myKeys, myValues);

   // Sorts a section of the Array using the default comparer.
   Array::Sort(myKeys, myValues, 1, 3);
   Console::WriteLine(S"After sorting a section of the Array using the default comparer:");


   // Sorts a section of the Array using the reverse case-insensitive comparer.
   Array::Sort(myKeys, myValues, 1, 3, myComparer);
   Console::WriteLine(S"After sorting a section of the Array using the reverse case-insensitive comparer:");
   PrintKeysAndValues(myKeys, myValues);

   // Sorts the entire Array using the default comparer.
   Array::Sort(myKeys, myValues);
   Console::WriteLine(S"After sorting the entire Array using the default comparer:");
   PrintKeysAndValues(myKeys, myValues);

   // Sorts the entire Array using the reverse case-insensitive comparer.
   Array::Sort(myKeys, myValues, myComparer);
   Console::WriteLine(S"After sorting the entire Array using the reverse case-insensitive comparer:");
   PrintKeysAndValues(myKeys, myValues);

}

/* 
This code produces the following output.

The Array initially contains the following values:
   red       : strawberries
   GREEN     : PEARS
   YELLOW    : LIMES
   BLUE      : BERRIES
   purple    : grapes
   black     : olives
   orange    : cantaloupe

After sorting a section of the Array using the default comparer:
   red       : strawberries
   BLUE      : BERRIES
   GREEN     : PEARS
   YELLOW    : LIMES
   purple    : grapes
   black     : olives
   orange    : cantaloupe

After sorting a section of the Array using the reverse case-insensitive comparer:
   red       : strawberries
   YELLOW    : LIMES
   GREEN     : PEARS
   BLUE      : BERRIES
   purple    : grapes
   black     : olives
   orange    : cantaloupe

After sorting the entire Array using the default comparer:
   black     : olives
   BLUE      : BERRIES
   GREEN     : PEARS
   orange    : cantaloupe
   purple    : grapes
   red       : strawberries
   YELLOW    : LIMES

After sorting the entire Array using the reverse case-insensitive comparer:
   YELLOW    : LIMES
   red       : strawberries
   purple    : grapes
   orange    : cantaloupe
   GREEN     : PEARS
   BLUE      : BERRIES
   black     : olives

*/

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

参照

Array クラス | Array メンバ | System 名前空間