String.IComparable.CompareTo(Object) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
virtual int System.IComparable.CompareTo(System::Object ^ value) = IComparable::CompareTo;
int IComparable.CompareTo(object value);
abstract member System.IComparable.CompareTo : obj -> int
override this.System.IComparable.CompareTo : obj -> int
Function CompareTo (value As Object) As Integer Implements IComparable.CompareTo
パラメーター
返品
このインスタンスが並べ替え順序で value パラメーターの前、後、または同じ位置に表示されるかどうかを示す 32 ビット符号付き整数。
| 価値 | 状態 |
|---|---|
| 0 より小 | このインスタンスは、 valueの前にあります。 |
| ゼロ | このインスタンスの並べ替え順序の位置は、 valueと同じです。 |
| 0 より大 | このインスタンスは valueに従うか、 value が null。 |
実装
例外
value は Stringではありません。
例
次の例では、CompareToで Object メソッドを使用します。
String インスタンスとTestClass オブジェクトの比較が試行されるため、メソッドはArgumentExceptionをスローします。
using System;
public class TestClass
{}
public class Example
{
public static void Main()
{
var test = new TestClass();
Object[] objectsToCompare = { test, test.ToString(), 123,
123.ToString(), "some text",
"Some Text" };
string s = "some text";
foreach (var objectToCompare in objectsToCompare) {
try {
int i = s.CompareTo(objectToCompare);
Console.WriteLine("Comparing '{0}' with '{1}': {2}",
s, objectToCompare, i);
}
catch (ArgumentException) {
Console.WriteLine("Bad argument: {0} (type {1})",
objectToCompare,
objectToCompare.GetType().Name);
}
}
}
}
// The example displays the following output:
// Bad argument: TestClass (type TestClass)
// Comparing 'some text' with 'TestClass': -1
// Bad argument: 123 (type Int32)
// Comparing 'some text' with '123': 1
// Comparing 'some text' with 'some text': 0
// Comparing 'some text' with 'Some Text': -1
open System
type TestClass() = class end
let test = TestClass()
let objectsToCompare: obj list =
[ test; string test; 123
string 123; "some text"
"Some Text" ]
let s = "some text"
for objectToCompare in objectsToCompare do
try
let i = s.CompareTo objectToCompare
printfn $"Comparing '{s}' with '{objectToCompare}': {i}"
with :? ArgumentException ->
printfn $"Bad argument: {objectToCompare} (type {objectToCompare.GetType().Name})"
// The example displays the following output:
// Bad argument: TestClass (type TestClass)
// Comparing 'some text' with 'TestClass': -1
// Bad argument: 123 (type Int32)
// Comparing 'some text' with '123': 1
// Comparing 'some text' with 'some text': 0
// Comparing 'some text' with 'Some Text': -1
Public Class TestClass
End Class
Public Class Example
Public Shared Sub Main()
Dim test As New TestClass()
Dim objectsToCompare() As Object = { test, test.ToString(), 123,
123.ToString(), "some text",
"Some Text" }
Dim s As String = "some text"
For Each objectToCompare In objectsToCompare
Try
Dim i As Integer = s.CompareTo(objectToCompare)
Console.WriteLine("Comparing '{0}' with '{1}': {2}",
s, objectToCompare, i)
Catch e As ArgumentException
Console.WriteLine("Bad argument: {0} (type {1})",
objectToCompare,
objectToCompare.GetType().Name)
End Try
Next
End Sub
End Class
' The example displays the following output:
' Bad argument: TestClass (type TestClass)
' Comparing 'some text' with 'TestClass': -1
' Bad argument: 123 (type Int32)
' Comparing 'some text' with '123': 1
' Comparing 'some text' with 'some text': 0
' Comparing 'some text' with 'Some Text': -1
注釈
value は、 String オブジェクトである必要があります。
Caution
CompareToメソッドは、主に並べ替えまたはアルファベット順の操作に使用するように設計されています。 メソッド呼び出しの主な目的が、2 つの文字列が等しいかどうかを判断する場合は使用しないでください。 2 つの文字列が等しいかどうかを判断するには、 Equals メソッドを呼び出します。
このメソッドは、現在のカルチャを使用して単語 (大文字と小文字が区別され、カルチャに依存) の比較を実行します。 単語、文字列、序数の並べ替えの詳細については、「 System.Globalization.CompareOptions」を参照してください。
このメソッドの動作の詳細については、 String.Compare(String, String) メソッドの「解説」セクションを参照してください。