.NET 4.0: Tautan kedua ... lain, tautan pertama. +1
Khepri
C # 7.0 gunakan var atau Guid atau _ untuk variabel inline out bool isValid = Guid.TryParse(inputString, out var tempGuid);ataubool isValid = Guid.TryParse(inputString, out _);
xadriel
9
Saat saya hanya menguji string untuk melihat apakah itu GUID, saya tidak benar-benar ingin membuat objek Guid yang tidak saya perlukan. Begitu...
pembaruan untuk 2018return Guid.TryParse(value, out var _);
tunggu
7
GUID adalah angka 16-byte (128-bit), biasanya diwakili oleh string heksadesimal 32 karakter. GUID (dalam bentuk hex) tidak perlu mengandung karakter alfa, meskipun secara kebetulan itu mungkin. Jika Anda menargetkan GUID dalam bentuk hex, Anda dapat memeriksa bahwa string tersebut memiliki panjang 32 karakter (setelah menghilangkan tanda hubung dan tanda kurung kurawal) dan hanya memiliki huruf AF dan angka.
Ada gaya penyajian GUID tertentu (penempatan tanda hubung) dan ekspresi reguler dapat digunakan untuk memeriksanya, misalnya,
Tidak ada jaminan bahwa GUID berisi karakter alfa. FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFFadalah GUID yang valid 00000000-0000-0000-0000-000000000000dan apa pun di antaranya.
Jika Anda menggunakan .NET 4.0, Anda dapat menggunakan jawaban di atas untuk Guid.Parse dan Guid.TryParse. Jika tidak, Anda dapat melakukan sesuatu seperti ini:
publicstaticboolTryParseGuid(string guidString, out Guid guid)
{
if (guidString == null) thrownew ArgumentNullException("guidString");
try
{
guid = new Guid(guidString);
returntrue;
}
catch (FormatException)
{
guid = default(Guid);
returnfalse;
}
}
Public Function IsValid(pString As String) As Boolean
Try
Dim mGuid As New Guid(pString)
Catch ex As Exception
Return False
End Try
Return True
End Function
Jawaban:
Lihat apakah ini membantu: -
Guid guidResult = Guid.Parse(inputString)
( http://msdn.microsoft.com/en-us/library/system.guid.parse.aspx )
bool isValid = Guid.TryParse(inputString, out guidOutput)
http://msdn.microsoft.com/en-us/library/system.guid.tryparse.aspx
sumber
bool isValid = Guid.TryParse(inputString, out var tempGuid);
ataubool isValid = Guid.TryParse(inputString, out _);
Saat saya hanya menguji string untuk melihat apakah itu GUID, saya tidak benar-benar ingin membuat objek Guid yang tidak saya perlukan. Begitu...
public static class GuidEx { public static bool IsGuid(string value) { Guid x; return Guid.TryParse(value, out x); } }
Dan inilah cara Anda menggunakannya:
string testMe = "not a guid"; if (GuidEx.IsGuid(testMe)) { ... }
sumber
return Guid.TryParse(value, out var _);
GUID adalah angka 16-byte (128-bit), biasanya diwakili oleh string heksadesimal 32 karakter. GUID (dalam bentuk hex) tidak perlu mengandung karakter alfa, meskipun secara kebetulan itu mungkin. Jika Anda menargetkan GUID dalam bentuk hex, Anda dapat memeriksa bahwa string tersebut memiliki panjang 32 karakter (setelah menghilangkan tanda hubung dan tanda kurung kurawal) dan hanya memiliki huruf AF dan angka.
Ada gaya penyajian GUID tertentu (penempatan tanda hubung) dan ekspresi reguler dapat digunakan untuk memeriksanya, misalnya,
@"^(\{{0,1}([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}\}{0,1})$"
dari http://www.geekzilla.co.uk/view8AD536EF-BC0D-427F-9F15-3A1BC663848E.htm . Yang mengatakan, harus ditekankan bahwa GUID benar-benar merupakan angka 128-bit dan dapat direpresentasikan dalam beberapa cara berbeda.
sumber
Tidak ada jaminan bahwa GUID berisi karakter alfa.
FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF
adalah GUID yang valid00000000-0000-0000-0000-000000000000
dan apa pun di antaranya.Jika Anda menggunakan .NET 4.0, Anda dapat menggunakan jawaban di atas untuk Guid.Parse dan Guid.TryParse. Jika tidak, Anda dapat melakukan sesuatu seperti ini:
public static bool TryParseGuid(string guidString, out Guid guid) { if (guidString == null) throw new ArgumentNullException("guidString"); try { guid = new Guid(guidString); return true; } catch (FormatException) { guid = default(Guid); return false; } }
sumber
Berdasarkan jawaban yang diterima, saya membuat metode Ekstensi sebagai berikut:
public static Guid ToGuid(this string aString) { Guid newGuid; if (string.IsNullOrWhiteSpace(aString)) { return MagicNumbers.defaultGuid; } if (Guid.TryParse(aString, out newGuid)) { return newGuid; } return MagicNumbers.defaultGuid; }
Di mana "MagicNumbers.defaultGuid" hanyalah "kosong" semua Panduan nol "00000000-0000-0000-0000-000000000000".
Dalam kasus saya, mengembalikan nilai itu sebagai hasil dari konversi ToGuid yang tidak valid bukanlah masalah.
sumber
lihat http://en.wikipedia.org/wiki/Globally_unique_identifier
Tidak ada jaminan bahwa alpha benar-benar akan ada.
sumber
Akan mengembalikan Guid jika itu adalah Guid yang valid, kalau tidak itu akan mengembalikan Guid.Empty
if (!Guid.TryParse(yourGuidString, out yourGuid)){ yourGuid= Guid.Empty; }
sumber
sumber
Gunakan fungsionalitas standar konstruktor GUID
Public Function IsValid(pString As String) As Boolean Try Dim mGuid As New Guid(pString) Catch ex As Exception Return False End Try Return True End Function
sumber