How to try convert a string to a Guid [duplicate]
Solution 1:
new Guid(string)
You could also look at using a TypeConverter
.
Solution 2:
use code like this:
new Guid("9D2B0228-4D0D-4C23-8B49-01A698857709")
instead of "9D2B0228-4D0D-4C23-8B49-01A698857709" you can set your string value
Solution 3:
Guid.TryParse()
https://msdn.microsoft.com/de-de/library/system.guid.tryparse(v=vs.110).aspx
or
Guid.TryParseExact()
https://msdn.microsoft.com/de-de/library/system.guid.tryparseexact(v=vs.110).aspx
in .NET 4.0 (or 3.5?)
Solution 4:
This will get you pretty close, and I use it in production and have never had a collision. However, if you look at the constructor for a guid in reflector, you will see all of the checks it makes.
public static bool GuidTryParse(string s, out Guid result)
{
if (!String.IsNullOrEmpty(s) && guidRegEx.IsMatch(s))
{
result = new Guid(s);
return true;
}
result = default(Guid);
return false;
}
static Regex guidRegEx = new Regex("^[A-Fa-f0-9]{32}$|" +
"^({|\\()?[A-Fa-f0-9]{8}-([A-Fa-f0-9]{4}-){3}[A-Fa-f0-9]{12}(}|\\))?$|" +
"^({)?[0xA-Fa-f0-9]{3,10}(, {0,1}[0xA-Fa-f0-9]{3,6}){2}, {0,1}({)([0xA-Fa-f0-9]{3,4}, {0,1}){7}[0xA-Fa-f0-9]{3,4}(}})$", RegexOptions.Compiled);