Guid.CompareTo Guid.CompareTo Guid.CompareTo Guid.CompareTo Method

定義

指定したオブジェクトまたは Guid とこのインスタンスを比較し、これらの相対値を示す値を返します。Compares this instance to a specified object or Guid and returns an indication of their relative values.

オーバーロード

CompareTo(Guid) CompareTo(Guid) CompareTo(Guid) CompareTo(Guid)

指定した Guid オブジェクトとこのインスタンスを比較し、これらの相対値を示す値を返します。Compares this instance to a specified Guid object and returns an indication of their relative values.

CompareTo(Object) CompareTo(Object) CompareTo(Object) CompareTo(Object)

指定したオブジェクトとこのインスタンスを比較し、これらの相対値を示す値を返します。Compares this instance to a specified object and returns an indication of their relative values.

CompareTo(Guid) CompareTo(Guid) CompareTo(Guid) CompareTo(Guid)

指定した Guid オブジェクトとこのインスタンスを比較し、これらの相対値を示す値を返します。Compares this instance to a specified Guid object and returns an indication of their relative values.

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 Guid Guid Guid

このインスタンスと比較するオブジェクト。An object to compare to this instance.

戻り値

このインスタンスと value の相対値を示す符号付き数値。A signed number indicating the relative values of this instance and value.

戻り値Return value 説明Description
負の整数A negative integer このインスタンスは value よりも小さくなっています。This instance is less than value.
0Zero このインスタンスは value と等価です。This instance is equal to value.
正の整数A positive integer このインスタンスは value よりも大きくなっています。This instance is greater than value.

実装

次の例ではCompareTo(Guid) 、メソッドを呼び出して、guid 値と2つの類似した guid 値を比較しています。The following example calls the CompareTo(Guid) method to compare a GUID value with two similar GUID values.

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
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[])コンストラクターに提供された値として比較します。The CompareTo method compares the GUIDs as if they were values provided to the Guid(Int32, Int16, Int16, Byte[]) constructor, as follows:

  • UInt32値を比較し、等しくない場合は結果を返します。It compares the UInt32 values, and returns a result if they are unequal. 等しい場合は、次の比較が実行されます。If they are equal, it performs the next comparison.

  • 最初UInt16の値を比較し、等しくない場合は結果を返します。It compares the first UInt16 values, and returns a result if they are unequal. 等しい場合は、次の比較が実行されます。If they are equal, it performs the next comparison.

  • 2番目UInt16の値を比較し、等しくない場合は結果を返します。It compares the second UInt16 values, and returns a result if they are unequal. 等しい場合は、次の比較が実行されます。If they are equal, it performs the next comparison.

  • が、次の8つByteの値のバイト単位の比較を実行する場合は。If performs a byte-by-byte comparison of the next eight Byte values. 最初の等しくないペアが検出されると、結果が返されます。When it encounters the first unequal pair, it returns the result. それ以外の場合は、0を返してGuid 、2つの値が等しいことを示します。Otherwise, it returns 0 to indicate that the two Guid values are equal.

最後の8バイトは、下位バイトから上位バイトまでのGuid逆の順序での文字列形式で表されることに注意してください。Note that the final eight bytes appear in the string representation of a Guid in reverse order, from low byte to high byte. たとえば、 Guid値 "01e75c83-c6f547 19457e-7427cec5560d" の文字列形式では、最後の8バイトは "b57e-7427cec5560d" です。For example, in the string representation of the Guid value "01e75c83-c6f5-4192-b57e-7427cec5560d", the final eight bytes are "b57e-7427cec5560d." つまり、最後の8バイトは、1バイト単位で、0xb5 で始まる左から右へと比較されます。In other words, the final eight bytes are compared on a byte-by-byte basis from left to right starting with 0xb5.

2つの Guid の値がコンポーネントに等しい場合、メソッドは次のコンポーネントを比較します。If two GUIDs have equal values for a component, the method compares the next component. 値が等しくないコンポーネントが見つかった場合は、結果を返します。When it finds a component whose values are unequal, it returns the result.

このメソッドは、 System.IComparable<T> valueパラメーターをGuid値に変換する必要Guid.CompareToがないため、インターフェイスを実装し、メソッドよりも若干優れたパフォーマンスを発揮します。This method implements the System.IComparable<T> interface and performs slightly better than the Guid.CompareTo method because it does not have to convert the value parameter to a Guid value.

CompareTo(Object) CompareTo(Object) CompareTo(Object) CompareTo(Object)

指定したオブジェクトとこのインスタンスを比較し、これらの相対値を示す値を返します。Compares this instance to a specified object and returns an indication of their relative values.

public:
 virtual int CompareTo(System::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 Object Object Object

比較対象のオブジェクト、または nullAn object to compare, or null.

戻り値

このインスタンスと value の相対値を示す符号付き数値。A signed number indicating the relative values of this instance and value.

戻り値Return value 説明Description
負の整数A negative integer このインスタンスは value よりも小さくなっています。This instance is less than value.
0Zero このインスタンスは value と等価です。This instance is equal to value.
正の整数A positive integer このインスタンスは value より大きいか、または valuenull です。This instance is greater than value, or value is null.

実装

例外

valueGuid ではありません。value is not a Guid.

次の例ではGuidAttribute 、属性を使用して、クラスに GUID を割り当てています。The following example uses the GuidAttribute attribute to assign a GUID to a class. Attribute.GetCustomAttributeメソッドを呼び出し、返されたGuidAttributeオブジェクトのValueプロパティをParseメソッドに渡すことによって、この GUID の値を取得します。It retrieves the value of this GUID by calling the Attribute.GetCustomAttribute method and passing the Value property of the returned GuidAttribute object to the Parse method. 次に、その GUID と値の配列を比較します。Then it compares that GUID with an array of values.

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
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インスタンスである必要があります。それ以外の場合は、例外がスローされます。The value parameter must be null or an instance of Guid; otherwise, an exception is thrown. のすべてのGuidインスタンスは、その値に関係なく、よりnullも大きいと見なされます。Any instance of Guid, regardless of its value, is considered greater than null.

メソッドCompareToは、次のように、guid をGuidコンストラクターに提供された値として比較します。The CompareTo method compares the GUIDs as if they were values provided to the Guid constructor, as follows:

  • Int32値を比較し、等しくない場合は結果を返します。It compares the Int32 values, and returns a result if they are unequal. 等しい場合は、次の比較が実行されます。If they are equal, it performs the next comparison.

  • 最初Int16の値を比較し、等しくない場合は結果を返します。It compares the first Int16 values, and returns a result if they are unequal. 等しい場合は、次の比較が実行されます。If they are equal, it performs the next comparison.

  • 2番目Int16の値を比較し、等しくない場合は結果を返します。It compares the second Int16 values, and returns a result if they are unequal. 等しい場合は、次の比較が実行されます。If they are equal, it performs the next comparison.

  • が、次の8つByteの値のバイト単位の比較を実行する場合は。If performs a byte-by-byte comparison of the next eight Byte values. 最初の等しくないペアが検出されると、結果が返されます。When it encounters the first unequal pair, it returns the result. それ以外の場合は、0を返してGuid 、2つの値が等しいことを示します。Otherwise, it returns 0 to indicate that the two Guid values are equal.

2つの Guid の値がコンポーネントに等しい場合、メソッドは次のコンポーネントを比較します。If two GUIDs have equal values for a component, the method compares the next component. 値が等しくないコンポーネントが見つかった場合は、結果を返します。When it finds a component whose values are unequal, it returns the result.

最後の8バイトは、下位バイトから上位バイトまでのGuid逆の順序での文字列形式で表されることに注意してください。Note that the final eight bytes appear in the string representation of a Guid in reverse order, from low byte to high byte. たとえば、 Guid値 "01e75c83-c6f547 19457e-7427cec5560d" の文字列形式では、最後の8バイトは "b57e-7427cec5560d" です。For example, in the string representation of the Guid value "01e75c83-c6f5-4192-b57e-7427cec5560d", the final eight bytes are "b57e-7427cec5560d."

適用対象