ArrayList 内およびその一部の要素を並べ替えます。
オーバーロードの一覧
各要素の IComparable 実装を使用して、 ArrayList 全体内の要素を並べ替えます。
.NET Compact Framework でもサポート。
[Visual Basic] Overloads Public Overridable Sub Sort()
[JScript] public function Sort();
指定した比較演算子を使用して、 ArrayList 全体内の要素を並べ替えます。
.NET Compact Framework でもサポート。
[Visual Basic] Overloads Public Overridable Sub Sort(IComparer)
[JScript] public function Sort(IComparer);
指定した比較演算子を使用して、 ArrayList のセクション内の要素を並べ替えます。
.NET Compact Framework でもサポート。
[Visual Basic] Overloads Public Overridable Sub Sort(Integer, Integer, IComparer)
使用例
[Visual Basic, C#, C++] 既定の比較演算子と並べ替え順序を反転するカスタム比較演算子を使用して、 ArrayList のセクション内の値を並べ替える方法を次の例に示します。
[Visual Basic, C#, C++] メモ ここでは、Sort のオーバーロード形式のうちの 1 つだけについて、使用例を示します。その他の例については、各オーバーロード形式のトピックを参照してください。
Imports System
Imports System.Collections
Imports Microsoft.VisualBasic
Public Class SamplesArrayList
Public Class myReverserClass
Implements IComparer
' Calls 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 'IComparer.Compare
End Class 'myReverserClass
Public Shared Sub Main()
' Creates and initializes a new ArrayList.
Dim myAL As New ArrayList()
myAL.Add("The")
myAL.Add("QUICK")
myAL.Add("BROWN")
myAL.Add("FOX")
myAL.Add("jumped")
myAL.Add("over")
myAL.Add("the")
myAL.Add("lazy")
myAL.Add("dog")
' Displays the values of the ArrayList.
Console.WriteLine("The ArrayList initially contains the following values:")
PrintIndexAndValues(myAL)
' Sorts the values of the ArrayList using the default comparer.
myAL.Sort(1, 3, Nothing)
Console.WriteLine("After sorting from index 1 to index 3 with the default comparer:")
PrintIndexAndValues(myAL)
' Sorts the values of the ArrayList using the reverse case-insensitive comparer.
Dim myComparer = New myReverserClass()
myAL.Sort(1, 3, myComparer)
Console.WriteLine("After sorting from index 1 to index 3 with the reverse case-insensitive comparer:")
PrintIndexAndValues(myAL)
End Sub 'Main
Public Shared Sub PrintIndexAndValues(myList As IEnumerable)
Dim i As Integer = 0
Dim myEnumerator As System.Collections.IEnumerator = myList.GetEnumerator()
While myEnumerator.MoveNext()
Console.WriteLine(ControlChars.Tab + "[{0}]:" + ControlChars.Tab + "{1}", i, myEnumerator.Current)
i += 1
End While
Console.WriteLine()
End Sub 'PrintIndexAndValues
End Class 'SamplesArrayList
'This code produces the following output.
'The ArrayList initially contains the following values:
' [0]: The
' [1]: QUICK
' [2]: BROWN
' [3]: FOX
' [4]: jumped
' [5]: over
' [6]: the
' [7]: lazy
' [8]: dog
'
'After sorting from index 1 to index 3 with the default comparer:
' [0]: The
' [1]: BROWN
' [2]: FOX
' [3]: QUICK
' [4]: jumped
' [5]: over
' [6]: the
' [7]: lazy
' [8]: dog
'
'After sorting from index 1 to index 3 with the reverse case-insensitive comparer:
' [0]: The
' [1]: QUICK
' [2]: FOX
' [3]: BROWN
' [4]: jumped
' [5]: over
' [6]: the
' [7]: lazy
' [8]: dog
[C#]
using System;
using System.Collections;
public class SamplesArrayList {
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 ArrayList.
ArrayList myAL = new ArrayList();
myAL.Add( "The" );
myAL.Add( "QUICK" );
myAL.Add( "BROWN" );
myAL.Add( "FOX" );
myAL.Add( "jumped" );
myAL.Add( "over" );
myAL.Add( "the" );
myAL.Add( "lazy" );
myAL.Add( "dog" );
// Displays the values of the ArrayList.
Console.WriteLine( "The ArrayList initially contains the following values:" );
PrintIndexAndValues( myAL );
// Sorts the values of the ArrayList using the default comparer.
myAL.Sort( 1, 3, null );
Console.WriteLine( "After sorting from index 1 to index 3 with the default comparer:" );
PrintIndexAndValues( myAL );
// Sorts the values of the ArrayList using the reverse case-insensitive comparer.
IComparer myComparer = new myReverserClass();
myAL.Sort( 1, 3, myComparer );
Console.WriteLine( "After sorting from index 1 to index 3 with the reverse case-insensitive comparer:" );
PrintIndexAndValues( myAL );
}
public static void PrintIndexAndValues( IEnumerable myList ) {
int i = 0;
System.Collections.IEnumerator myEnumerator = myList.GetEnumerator();
while ( myEnumerator.MoveNext() )
Console.WriteLine( "\t[{0}]:\t{1}", i++, myEnumerator.Current );
Console.WriteLine();
}
}
/*
This code produces the following output.
The ArrayList initially contains the following values:
[0]: The
[1]: QUICK
[2]: BROWN
[3]: FOX
[4]: jumped
[5]: over
[6]: the
[7]: lazy
[8]: dog
After sorting from index 1 to index 3 with the default comparer:
[0]: The
[1]: BROWN
[2]: FOX
[3]: QUICK
[4]: jumped
[5]: over
[6]: the
[7]: lazy
[8]: dog
After sorting from index 1 to index 3 with the reverse case-insensitive comparer:
[0]: The
[1]: QUICK
[2]: FOX
[3]: BROWN
[4]: jumped
[5]: over
[6]: the
[7]: lazy
[8]: dog
*/
[C++]
#using <mscorlib.dll>
using namespace System;
using namespace System::Collections;
__gc class myReverserClass : public IComparer {
public:
// Calls CaseInsensitiveComparer.Compare with the parameters reversed.
int Compare(Object* x, Object* y) {
return( (new CaseInsensitiveComparer())->Compare(y, x) );
}
};
void PrintIndexAndValues(IEnumerable* myList) {
int i = 0;
IEnumerator* myEnumerator = myList->GetEnumerator();
while (myEnumerator->MoveNext())
Console::WriteLine(S"\t[{0}]:\t{1}", (i++).ToString(), myEnumerator->Current->ToString());
Console::WriteLine();
}
int main() {
// Creates and initializes a new ArrayList.
ArrayList* myAL = new ArrayList();
myAL->Add(S"The");
myAL->Add(S"QUICK");
myAL->Add(S"BROWN");
myAL->Add(S"FOX");
myAL->Add(S"jumped");
myAL->Add(S"over");
myAL->Add(S"the");
myAL->Add(S"lazy");
myAL->Add(S"dog");
// Displays the values of the ArrayList.
Console::WriteLine(S"The ArrayList initially contains the following values:");
PrintIndexAndValues(myAL);
// Sorts the values of the ArrayList using the default comparer.
myAL->Sort(1, 3, 0);
Console::WriteLine(S"After sorting from index 1 to index 3 with the default comparer:");
PrintIndexAndValues(myAL);
// Sorts the values of the ArrayList using the reverse case-insensitive comparer.
IComparer* myComparer = new myReverserClass();
myAL->Sort(1, 3, myComparer);
Console::WriteLine(S"After sorting from index 1 to index 3 with the reverse case-insensitive comparer:");
PrintIndexAndValues(myAL);
}
/*
This code produces the following output.
The ArrayList initially contains the following values:
[0]: The
[1]: QUICK
[2]: BROWN
[3]: FOX
[4]: jumped
[5]: over
[6]: the
[7]: lazy
[8]: dog
After sorting from index 1 to index 3 with the default comparer:
[0]: The
[1]: BROWN
[2]: FOX
[3]: QUICK
[4]: jumped
[5]: over
[6]: the
[7]: lazy
[8]: dog
After sorting from index 1 to index 3 with the reverse case-insensitive comparer:
[0]: The
[1]: QUICK
[2]: FOX
[3]: BROWN
[4]: jumped
[5]: over
[6]: the
[7]: lazy
[8]: dog
*/
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。