12 Stimmen

Der effizienteste Weg, um eine Guid in C# einzuschalten

In C# unterstützt die switch-Anweisung nur ganzzahlige Typen (keine Guids), so dass eine einfache O(1)-Vergleichstabelle nicht möglich erscheint.

Was ist der rechnerisch effizienteste Weg, einen Guid abzugleichen?

Zuerst dachte ich

if(gMyGuid == new Guid("VALUE"))
else if (gMyGuid == new Guid("VALUE2")
else if (gMyGuid == new Guid("VALUE3")
...
else if (gMyGuid == new Guid("VALUEn")

Dadurch erstelle ich jedoch jedes Mal eine neue Instanz der Guid für einen Vergleich. Ich könnte die Guid in eine Zeichenfolge konvertieren, dann vergleichen Sie auf die Zeichenfolge, aber die Zeichenfolge Vergleich ist eine ziemlich lange Zeichenfolge für Vergleich.

Für jeden Ratschlag sind wir dankbar.

0voto

Dave New Punkte 36419

Der Guid-Gleichheitsoperator (==) ist überladen, um nur die Werte zu vergleichen:

http://msdn.microsoft.com/en-us/library/system.guid.op_equality(v=VS.90).aspx

if(gMyGuid == myGuid)
...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X