Guid.CompareTo 메서드

정의

이 인스턴스를 지정된 개체나 Guid와 비교하여 상대 값의 표시를 반환합니다.Compares this instance to a specified object or Guid and returns an indication of their relative values.

오버로드

CompareTo(Guid)

이 인스턴스를 지정된 Guid 개체와 비교하여 상대 값의 표시를 반환합니다.Compares this instance to a specified Guid object and returns an indication of their relative values.

CompareTo(Object)

이 인스턴스를 지정된 개체와 비교하여 상대 값의 표시를 반환합니다.Compares this instance to a specified object and returns an indication of their relative values.

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

이 인스턴스와 비교할 개체입니다.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 값과 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.

  • 두 번째 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 값이 같은지를 표시 합니다.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-c6f5-4192-b57e-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 바이트 0xb5를 오른쪽부터 왼쪽에서 바이트 단위로으로 비교 됩니다.In other words, the final eight bytes are compared on a byte-by-byte basis from left to right starting with 0xb5.

두 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)

이 인스턴스를 지정된 개체와 비교하여 상대 값의 표시를 반환합니다.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

비교할 개체 또는 null입니다.An 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.

구현

예외

value이(가) Guid가 아닌 경우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인스턴스여야 합니다. 그렇지 않으면 예외가 throw 됩니다.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.

  • 두 번째 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 값이 같은지를 표시 합니다.Otherwise, it returns 0 to indicate that the two Guid values are equal.

두 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-c6f5-4192-b57e-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."

적용 대상