.NET 4.0: вторая ссылка ... иначе первая ссылка. +1
Хепри
C # 7.0 использует var или Guid или _ для встроенных переменных bool isValid = Guid.TryParse(inputString, out var tempGuid);илиbool isValid = Guid.TryParse(inputString, out _);
xadriel
9
Когда я просто проверяю строку, чтобы узнать, является ли она идентификатором GUID, я действительно не хочу создавать объект Guid, который мне не нужен. Так...
обновление на 2018 годreturn Guid.TryParse(value, out var _);
waitforit
7
GUID - это 16-байтовое (128-битное) число, обычно представленное 32-символьной шестнадцатеричной строкой. Идентификатор GUID (в шестнадцатеричной форме) не обязательно должен содержать буквенные символы, хотя, возможно, это произойдет случайно. Если вы нацеливаетесь на GUID в шестнадцатеричной форме, вы можете проверить, что строка имеет длину 32 символа (после удаления тире и фигурных скобок) и содержит только буквы AF и цифры.
Существует определенный стиль представления идентификаторов GUID (размещение тире), и для проверки этого можно использовать регулярные выражения, например,
Нет гарантии, что GUID содержит буквенные символы. FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF- действительный идентификатор GUID 00000000-0000-0000-0000-000000000000и все, что находится между ними.
Если вы используете .NET 4.0, вы можете использовать ответ выше для Guid.Parse и Guid.TryParse. В противном случае вы можете сделать что-то вроде этого:
publicstaticboolTryParseGuid(string guidString, out Guid guid)
{
if (guidString == null) thrownew ArgumentNullException("guidString");
try
{
guid = new Guid(guidString);
returntrue;
}
catch (FormatException)
{
guid = default(Guid);
returnfalse;
}
}
Использовать стандартные функции конструктора 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
Ответы:
Посмотрите, помогает ли это: -
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
источник
bool isValid = Guid.TryParse(inputString, out var tempGuid);
илиbool isValid = Guid.TryParse(inputString, out _);
Когда я просто проверяю строку, чтобы узнать, является ли она идентификатором GUID, я действительно не хочу создавать объект Guid, который мне не нужен. Так...
public static class GuidEx { public static bool IsGuid(string value) { Guid x; return Guid.TryParse(value, out x); } }
И вот как вы его используете:
string testMe = "not a guid"; if (GuidEx.IsGuid(testMe)) { ... }
источник
return Guid.TryParse(value, out var _);
GUID - это 16-байтовое (128-битное) число, обычно представленное 32-символьной шестнадцатеричной строкой. Идентификатор GUID (в шестнадцатеричной форме) не обязательно должен содержать буквенные символы, хотя, возможно, это произойдет случайно. Если вы нацеливаетесь на GUID в шестнадцатеричной форме, вы можете проверить, что строка имеет длину 32 символа (после удаления тире и фигурных скобок) и содержит только буквы AF и цифры.
Существует определенный стиль представления идентификаторов GUID (размещение тире), и для проверки этого можно использовать регулярные выражения, например,
@"^(\{{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})$"
с http://www.geekzilla.co.uk/view8AD536EF-BC0D-427F-9F15-3A1BC663848E.htm . Тем не менее, следует подчеркнуть, что GUID действительно является 128-битным числом и может быть представлен различными способами.
источник
Нет гарантии, что GUID содержит буквенные символы.
FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF
- действительный идентификатор GUID00000000-0000-0000-0000-000000000000
и все, что находится между ними.Если вы используете .NET 4.0, вы можете использовать ответ выше для Guid.Parse и Guid.TryParse. В противном случае вы можете сделать что-то вроде этого:
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; } }
источник
На основе принятого ответа я создал метод расширения следующим образом:
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; }
Где MagicNumbers.defaultGuid - это просто «пустой» Guid с нулевым значением «00000000-0000-0000-0000-000000000000».
В моем случае возвращение этого значения в результате неправильного преобразования ToGuid не было проблемой.
источник
см. http://en.wikipedia.org/wiki/Globally_unique_identifier
Нет никакой гарантии, что альфа действительно будет там.
источник
Вернет Guid, если это действительный Guid, иначе он вернет Guid.Empty
if (!Guid.TryParse(yourGuidString, out yourGuid)){ yourGuid= Guid.Empty; }
источник
источник
Использовать стандартные функции конструктора 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
источник