Guid.CompareTo Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Jämför den här instansen med ett angivet objekt eller Guid och returnerar en indikation på deras relativa värden.
Överlagringar
| Name | Description |
|---|---|
| CompareTo(Guid) |
Jämför den här instansen med ett angivet Guid objekt och returnerar en indikation på deras relativa värden. |
| CompareTo(Object) |
Jämför den här instansen med ett angivet objekt och returnerar en indikation på deras relativa värden. |
CompareTo(Guid)
- Källa:
- Guid.cs
- Källa:
- Guid.cs
- Källa:
- Guid.cs
- Källa:
- Guid.cs
- Källa:
- Guid.cs
Jämför den här instansen med ett angivet Guid objekt och returnerar en indikation på deras relativa värden.
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
Parametrar
- value
- Guid
Ett objekt som ska jämföras med den här instansen.
Returer
Ett signerat tal som anger de relativa värdena för den här instansen och value.
| Returvärde | Beskrivning |
|---|---|
| Ett negativt heltal | Den här instansen är mindre än value.
|
| Noll | Den här instansen är lika med value.
|
| Ett positivt heltal | Den här instansen är större än value.
|
Implementeringar
Exempel
I följande exempel anropas CompareTo(Guid) metoden för att jämföra ett GUID-värde med två liknande GUID-värden.
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
Kommentarer
Metoden CompareTo jämför GUID:erna som om de vore värden som tillhandahålls konstruktorn Guid(Int32, Int16, Int16, Byte[]) enligt följande:
Den jämför UInt32 värdena och returnerar ett resultat om de är ojämlika. Om de är lika med utför den nästa jämförelse.
Den jämför de första UInt16 värdena och returnerar ett resultat om de är ojämlika. Om de är lika med utför den nästa jämförelse.
Den jämför de andra UInt16 värdena och returnerar ett resultat om de är ojämlika. Om de är lika med utför den nästa jämförelse.
Om utför en byte-för-byte-jämförelse av de kommande åtta Byte värdena. När det stöter på det första ojämlika paret returneras resultatet. Annars returneras 0 för att indikera att de två Guid värdena är lika.
Observera att de sista åtta byteen visas i strängrepresentationen av en Guid i omvänd ordning, från låg byte till hög byte. I strängrepresentationen Guid av värdet "01e75c83-c6f5-4192-b57e-7427cec5560d" är de sista åtta byteen "b57e-7427cec5560d". Med andra ord jämförs de sista åtta byteen med byte för byte från vänster till höger från och med 0xb5.
Om två GUID:er har samma värden för en komponent jämför metoden nästa komponent. När den hittar en komponent vars värden är ojämlika returneras resultatet.
Den här metoden implementerar System.IComparable<T> gränssnittet och presterar något bättre än Guid.CompareTo metoden eftersom den inte behöver konvertera parametern value till ett Guid värde.
Gäller för
CompareTo(Object)
- Källa:
- Guid.cs
- Källa:
- Guid.cs
- Källa:
- Guid.cs
- Källa:
- Guid.cs
- Källa:
- Guid.cs
Jämför den här instansen med ett angivet objekt och returnerar en indikation på deras relativa värden.
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
Parametrar
- value
- Object
Ett objekt att jämföra, eller null.
Returer
Ett signerat tal som anger de relativa värdena för den här instansen och value.
| Returvärde | Beskrivning |
|---|---|
| Ett negativt heltal | Den här instansen är mindre än value.
|
| Noll | Den här instansen är lika med value.
|
| Ett positivt heltal | Den här instansen är större än value, eller value är null.
|
Implementeringar
Undantag
value är inte en Guid.
Exempel
I följande exempel används attributet GuidAttribute för att tilldela ett GUID till en klass. Det hämtar värdet för det här GUID:et Attribute.GetCustomAttribute genom att anropa metoden och skicka Value egenskapen för det returnerade GuidAttribute objektet till Parse metoden. Sedan jämförs guid med en matris med värden.
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
Kommentarer
Parametern value måste vara null eller en instans av Guid. annars utlöses ett undantag. Alla instanser av Guid, oavsett dess värde, anses vara större än null.
Metoden CompareTo jämför GUID:erna som om de vore värden som tillhandahålls konstruktorn Guid enligt följande:
Den jämför Int32 värdena och returnerar ett resultat om de är ojämlika. Om de är lika med utför den nästa jämförelse.
Den jämför de första Int16 värdena och returnerar ett resultat om de är ojämlika. Om de är lika med utför den nästa jämförelse.
Den jämför de andra Int16 värdena och returnerar ett resultat om de är ojämlika. Om de är lika med utför den nästa jämförelse.
Om utför en byte-för-byte-jämförelse av de kommande åtta Byte värdena. När det stöter på det första ojämlika paret returneras resultatet. Annars returneras 0 för att indikera att de två Guid värdena är lika.
Om två GUID:er har samma värden för en komponent jämför metoden nästa komponent. När den hittar en komponent vars värden är ojämlika returneras resultatet.
Observera att de sista åtta byteen visas i strängrepresentationen av en Guid i omvänd ordning, från låg byte till hög byte. I strängrepresentationen Guid av värdet "01e75c83-c6f5-4192-b57e-7427cec5560d" är de sista åtta byteen "b57e-7427cec5560d".