Guid.CompareTo メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定したオブジェクトまたは Guid とこのインスタンスを比較し、これらの相対値を示す値を返します。
オーバーロード
CompareTo(Guid) |
指定した Guid オブジェクトとこのインスタンスを比較し、これらの相対値を示す値を返します。 |
CompareTo(Object) |
指定したオブジェクトとこのインスタンスを比較し、これらの相対値を示す値を返します。 |
CompareTo(Guid)
- ソース:
- Guid.cs
- ソース:
- Guid.cs
- ソース:
- Guid.cs
指定した Guid オブジェクトとこのインスタンスを比較し、これらの相対値を示す値を返します。
public:
virtual int CompareTo(Guid value);
public int CompareTo (Guid value);
abstract member CompareTo : Guid -> int
override this.CompareTo : Guid -> int
Public Function CompareTo (value As Guid) As Integer
パラメーター
- value
- Guid
このインスタンスと比較するオブジェクト。
戻り値
このインスタンスと value
の相対値を示す符号付き数値。
戻り値 | 説明 |
---|---|
負の整数 | このインスタンスは value より小さい値です。
|
ゼロ | このインスタンスは value と同じ値です。
|
正の整数 | このインスタンスは value より大きい値です。
|
実装
例
次の例では、 メソッドを CompareTo(Guid) 呼び出して、GUID 値と 2 つの同様の GUID 値を比較します。
using System;
public class Example
{
public static void Main()
{
Guid mainGuid = Guid.Parse("01e75c83-c6f5-4192-b57e-7427cec5560d");
unchecked {
Guid guid2 = new Guid(0x01e75c83, (short) 0xc6f5,
0x4192,
new Byte[] { 0xb5, 0x7e, 0x74, 0x27, 0xce, 0xc5, 0x56, 0x0c} );
Guid guid3 = Guid.Parse("01e75c84-c6f5-4192-b57e-7427cec5560d");
Console.WriteLine("{0} {1:F} {2}", mainGuid,
(Comparison) mainGuid.CompareTo(guid2), guid2);
Console.WriteLine("{0} {1:F} {2}", mainGuid,
(Comparison) mainGuid.CompareTo(guid3), guid3);
}
}
private enum Comparison
{ LessThan = -1, Equals = 0, GreaterThan = 1 }
}
// The example displays the following output:
// 01e75c83-c6f5-4192-b57e-7427cec5560d GreaterThan 01e75c83-c6f5-4192-b57e-7427cec5560c
// 01e75c83-c6f5-4192-b57e-7427cec5560d LessThan 01e75c84-c6f5-4192-b57e-7427cec5560d
open System
type Comparison =
| ``Less Than`` = -1
| Equals = 0
| ``Greater Than`` = 1
let mainGuid =
Guid.Parse "01e75c83-c6f5-4192-b57e-7427cec5560d"
let guid2 = Guid(0x01e75c83, 0xc6f5s, 0x4192s, [| 0xb5uy; 0x7euy; 0x74uy; 0x27uy; 0xceuy; 0xc5uy; 0x56uy; 0x0cuy |])
let guid3 =
Guid.Parse("01e75c84-c6f5-4192-b57e-7427cec5560d")
printfn $"{mainGuid} {mainGuid.CompareTo guid2 |> enum<Comparison> :F} {guid2}"
printfn $"{mainGuid} {mainGuid.CompareTo guid3 |> enum<Comparison> :F} {guid3}"
// The example displays the following output:
// 01e75c83-c6f5-4192-b57e-7427cec5560d Greater Than 01e75c83-c6f5-4192-b57e-7427cec5560c
// 01e75c83-c6f5-4192-b57e-7427cec5560d Less Than 01e75c84-c6f5-4192-b57e-7427cec5560d
Module Example
Public Sub Main()
Dim mainGuid As Guid = Guid.Parse("01e75c83-c6f5-4192-b57e-7427cec5560d")
Dim guid2 As New Guid(&h01e75c83,
BitConverter.ToInt16(new Byte() { &hf5, &hc6 }, 0),
&h4192,
new Byte() { &hb5, &h7e, &h74, &h27, &hce, &hc5, &h56, &h0c} )
Dim guid3 As Guid = Guid.Parse("01e75c84-c6f5-4192-b57e-7427cec5560d")
Console.WriteLine("{0} {1:F} {2}", mainGuid,
CType(mainGuid.CompareTo(guid2), Comparison), guid2)
Console.WriteLine("{0} {1:F} {2}", mainGuid,
CType(mainGuid.CompareTo(guid3), Comparison), guid3)
End Sub
Private Enum Comparison As Integer
LessThan = -1
Equals = 0
GreaterThan = 1
End Enum
End Module
' The example displays the following output:
' 01e75c83-c6f5-4192-b57e-7427cec5560d GreaterThan 01e75c83-c6f5-4192-b57e-7427cec5560c
' 01e75c83-c6f5-4192-b57e-7427cec5560d LessThan 01e75c84-c6f5-4192-b57e-7427cec5560d
注釈
メソッドは CompareTo 、GUID をコンストラクターに提供された Guid(Int32, Int16, Int16, Byte[]) 値と比較します。次に示します。
値を UInt32 比較し、等しくない場合は結果を返します。 等しい場合は、次の比較を実行します。
最初 UInt16 の値を比較し、等しくない場合は結果を返します。 等しい場合は、次の比較を実行します。
2 番目 UInt16 の値を比較し、等しくない場合は結果を返します。 等しい場合は、次の比較を実行します。
の場合は、次の 8 つの Byte 値のバイト単位の比較を実行します。 最初の等しくないペアが検出されると、結果が返されます。 それ以外の場合は、2 つの Guid 値が等しいことを示す 0 を返します。
最後の 8 バイトは、 の文字列表現 Guid で、下位バイトから高バイトまでの逆の順序で表示されることに注意してください。 たとえば、値 "01e75c83-c6f5-4192-b57e-7427cec5560d" の文字列表現 Guid では、最後の 8 バイトは "b57e-7427cec5560d" です。つまり、最後の 8 バイトは、0xb5で始まる左から右にバイト単位で比較されます。
2 つの GUID に 1 つのコンポーネントの値が等しい場合、メソッドは次のコンポーネントを比較します。 値が等しくないコンポーネントが見つかると、結果が返されます。
このメソッドは インターフェイスをSystem.IComparable<T>実装し、パラメーターを値に変換する必要がないため、 メソッドよりもGuid.CompareTo若干優れたパフォーマンスをvalue
Guid発揮します。
適用対象
CompareTo(Object)
- ソース:
- Guid.cs
- ソース:
- Guid.cs
- ソース:
- Guid.cs
指定したオブジェクトとこのインスタンスを比較し、これらの相対値を示す値を返します。
public:
virtual int CompareTo(System::Object ^ value);
public int CompareTo (object? value);
public int CompareTo (object value);
abstract member CompareTo : obj -> int
override this.CompareTo : obj -> int
Public Function CompareTo (value As Object) As Integer
パラメーター
- value
- Object
比較対象のオブジェクト、または null
。
戻り値
このインスタンスと value
の相対値を示す符号付き数値。
戻り値 | 説明 |
---|---|
負の整数 | このインスタンスは value より小さい値です。
|
ゼロ | このインスタンスは value と同じ値です。
|
正の整数 | このインスタンスは value より大きいか、または value が null です。
|
実装
例外
value
が Guid ではありません。
例
次の例では、 属性を GuidAttribute 使用して GUID をクラスに割り当てます。 メソッドを呼び出し、返されたGuidAttributeオブジェクトの プロパティを Attribute.GetCustomAttribute メソッドにValue渡すことで、この GUID の値をParse取得します。 次に、その GUID を値の配列と比較します。
using System;
using System.Runtime.InteropServices;
[Guid("936DA01F-9ABD-4d9d-80C7-02AF85C822A8")]
public class Example
{
public static void Main()
{
GuidAttribute guidAttr = (GuidAttribute) Attribute.GetCustomAttribute(typeof(Example),
typeof(GuidAttribute));
Guid guidValue = Guid.Parse(guidAttr.Value);
Object[] values = { null , 16,
Guid.Parse("01e75c83-c6f5-4192-b57e-7427cec5560d"),
guidValue };
foreach (var value in values) {
try {
Console.WriteLine("{0} and {1}: {2}", guidValue,
value == null ? "null" : value,
guidValue.CompareTo(value));
}
catch (ArgumentException) {
Console.WriteLine("Cannot compare {0} and {1}", guidValue,
value == null ? "null" : value);
}
}
}
}
// The example displays the following output:
// 936da01f-9abd-4d9d-80c7-02af85c822a8 and null: 1
// Cannot compare 936da01f-9abd-4d9d-80c7-02af85c822a8 and 16
// 936da01f-9abd-4d9d-80c7-02af85c822a8 and 01e75c83-c6f5-4192-b57e-7427cec5560d: 1
// 936da01f-9abd-4d9d-80c7-02af85c822a8 and 936da01f-9abd-4d9d-80c7-02af85c822a8: 0
open System
open System.Runtime.InteropServices
[<Guid("936DA01F-9ABD-4d9d-80C7-02AF85C822A8")>]
type Example = class end
let guidAttr =
Attribute.GetCustomAttribute(typeof<Example>, typeof<GuidAttribute>) :?> GuidAttribute
let guidValue =
Guid.Parse guidAttr.Value
let values: obj[] =
[| null; 16
Guid.Parse "01e75c83-c6f5-4192-b57e-7427cec5560d"
guidValue |]
for value in values do
try
printfn $"{guidValue} and %A{value}: {guidValue.CompareTo value}"
with :? ArgumentException ->
printfn $"Cannot compare {guidValue} and %A{value}"
// The example displays the following output:
// 936da01f-9abd-4d9d-80c7-02af85c822a8 and <null>: 1
// Cannot compare 936da01f-9abd-4d9d-80c7-02af85c822a8 and 16
// 936da01f-9abd-4d9d-80c7-02af85c822a8 and 01e75c83-c6f5-4192-b57e-7427cec5560d: 1
// 936da01f-9abd-4d9d-80c7-02af85c822a8 and 936da01f-9abd-4d9d-80c7-02af85c822a8: 0
Imports System.Runtime.InteropServices
<Guid("936DA01F-9ABD-4d9d-80C7-02AF85C822A8")>
Module Example
Public Sub Main()
Dim guidAttr As GuidAttribute = CType(Attribute.GetCustomAttribute(GetType(Example),
GetType(GuidAttribute)), GuidAttribute)
Dim guidValue As Guid = Guid.Parse(guidAttr.Value)
Dim values() As Object = { Nothing, 16,
Guid.Parse("01e75c83-c6f5-4192-b57e-7427cec5560d"),
guidValue }
For Each value In values
Try
Console.WriteLine("{0} and {1}: {2}", guidValue,
If(value Is Nothing, "null", value),
guidValue.CompareTo(value))
Catch e As ArgumentException
Console.WriteLine("Cannot compare {0} and {1}", guidValue,
If(value Is Nothing, "null", value))
End Try
Next
End Sub
End Module
' The example displays the following output:
' 936da01f-9abd-4d9d-80c7-02af85c822a8 and null: 1
' Cannot compare 936da01f-9abd-4d9d-80c7-02af85c822a8 and 16
' 936da01f-9abd-4d9d-80c7-02af85c822a8 and 01e75c83-c6f5-4192-b57e-7427cec5560d: 1
' 936da01f-9abd-4d9d-80c7-02af85c822a8 and 936da01f-9abd-4d9d-80c7-02af85c822a8: 0
注釈
パラメーターは value
または のインスタンスである null
必要があります。それ以外の Guid場合は例外がスローされます。 のインスタンスは Guid、その値に関係なく、 より null
大きいと見なされます。
メソッドは CompareTo 、GUID をコンストラクターに提供された Guid 値と比較します。次に示します。
値を Int32 比較し、等しくない場合は結果を返します。 等しい場合は、次の比較を実行します。
最初 Int16 の値を比較し、等しくない場合は結果を返します。 等しい場合は、次の比較を実行します。
2 番目 Int16 の値を比較し、等しくない場合は結果を返します。 等しい場合は、次の比較を実行します。
の場合は、次の 8 つの Byte 値のバイト単位の比較を実行します。 最初の等しくないペアが検出されると、結果が返されます。 それ以外の場合は、2 つの Guid 値が等しいことを示す 0 を返します。
2 つの GUID に 1 つのコンポーネントの値が等しい場合、メソッドは次のコンポーネントを比較します。 値が等しくないコンポーネントが見つかると、結果が返されます。
最後の 8 バイトは、 の文字列表現 Guid で、下位バイトから高バイトまでの逆の順序で表示されることに注意してください。 たとえば、値 "01e75c83-c6f5-4192-b57e-7427cec5560d" の文字列表現 Guid では、最後の 8 バイトは "b57e-7427cec5560d" です。
適用対象
.NET