C#のChar.CompareTo()メソッドとは?使い方と戻り値をわかりやすく解説
C#のChar.CompareTo()メソッドは、現在のCharインスタンスを指定したオブジェクトまたは値型と比較し、並べ替え順序においてこのインスタンスが相手の前・後ろ・同じ位置のどれに該当するかを示すためのメソッドです。
文字同士の大小関係を数値で判定できるため、並べ替え処理や条件分岐などで活用できます。
構文
Char.CompareTo()メソッドには、以下の2つのオーバーロードがあります。
public int CompareTo (char val); public int CompareTo (object val);
パラメータ
- 1つ目の構文:val は比較対象となる char 型の文字を指定します。
- 2つ目の構文:val はこのインスタンスと比較するオブジェクト、または null を指定します。
戻り値
CompareTo()メソッドの戻り値は、比較結果に応じて以下のように変化します。
| 戻り値 | 意味 |
|---|---|
| 0(ゼロ) | 現在のインスタンスは、並べ替え順序で val と同じ位置にある |
| 0より小さい値 | 現在のインスタンスは、val よりも前(小さい)位置にある |
| 0より大きい値 | 現在のインスタンスは、val よりも後ろ(大きい)位置にある |
使用例1:同じ文字を比較する場合
まず、同じ文字同士を比較した場合の動作を確認してみましょう。
using System;
public class Demo {
public static void Main(){
char val = 'A';
Console.WriteLine("Return Value = "+'A'.CompareTo(val));
}
}出力結果
Return Value = 0
'A' と 'A' は同じ文字なので、並べ替え順序上の位置が同一であり、戻り値は 0 となります。
使用例2:異なる文字を比較する場合
次に、異なる文字を比較した場合の例を見てみましょう。
using System;
public class Demo {
public static void Main(){
char val = 'B';
Console.WriteLine("Return Value = "+'D'.CompareTo(val));
}
}出力結果
Return Value = 2
この例では 'D' を 'B' と比較しています。Unicode の文字コード順では 'D' は 'B' の2つ後ろに位置するため、戻り値は 2 になります。このように、戻り値には単なる正負だけでなく、文字間の「距離」が反映される点にも注目してください。
まとめ
Char.CompareTo()メソッドを使うことで、文字同士の前後関係を簡単に数値として取得できます。戻り値が負か正かで大小を判定できるほか、その絶対値から文字コード上の差分も把握できるため、カスタムソートや文字列処理の実装時に便利なメソッドです。
-
C#の列挙型(Enum)をCompareToメソッドで比較する方法
C#では、CompareTo()メソッドを使うことで、2つの列挙型(Enum)の値を簡単に比較できます。このメソッドは、呼び出し元の値と引数で渡した対象の値を比較し、その大小関係を数値で返します。 CompareToメソッドの戻り値 CompareTo()メソッドは、比較結果として以下のいずれかの値を返します。 0より小さい値:元の値が対象の値より小さい場合 0:元の値と対象の値が等しい場合 0より大きい値:元の値が対象の値より大きい場合 サンプルコード 以下は、列挙型の値をCompareTo()メソッドで比較する例です。 using System; class Program {
-
C#のCompareTo()メソッドの使い方を解説
C#では、2つの値を比較する際にCompareTo()メソッドを使用します。このメソッドは、呼び出し元の値と引数で渡した値を比較し、その大小関係を整数値として返します。CompareTo()メソッドの戻り値CompareTo()メソッドの戻り値は以下の3パターンです。0 = 両方の値が等しい場合1 = 呼び出し元の値が引数の値より大きい場合(第2の数値が小さい)-1 = 呼び出し元の値が引数の値より小さい場合(第1の数値が小さい)CompareTo()メソッドの実装例それでは、C#でCompareTo()メソッドを実装するサンプルコードを見てみましょう。ここでは、同じ値を持つ2つのint型変数