Guid.ParseExact Method
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Converts the string representation of a GUID to the equivalent Guid value, provided that the string is in the specified format.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- input
- Type: System.String
The GUID to convert.
- format
- Type: System.String
One of the following specifiers that indicates the exact format to use when interpreting input: "N", "D", "B", "P", or "X".
| Exception | Condition |
|---|---|
| ArgumentNullException | input or format is null. |
| FormatException | input is not in a recognized format. |
The following table shows the accepted format specifiers for the format parameter. "0" represents a digit; hyphens ("-"), braces ("{", "}"), and parentheses ("(", ")") appear as shown.
Specifier | Format of the input parameter |
|---|---|
N | 32 digits: 00000000000000000000000000000000 |
D | 32 digits separated by hyphens: 00000000-0000-0000-0000-000000000000 |
B | 32 digits separated by hyphens, enclosed in braces: {00000000-0000-0000-0000-000000000000} |
P | 32 digits separated by hyphens, enclosed in parentheses: (00000000-0000-0000-0000-000000000000) |
X | Four hexadecimal values enclosed in braces, where the fourth value is a subset of eight hexadecimal values that is also enclosed in braces: {0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} |
The following example calls the ToString method with each of the supported format specifiers to generate an array of strings that represent a single GUID. These are then passed to the ParseExact method, which successfully parses only the string that conforms to the "B" format specifier.
using System; public class Example { public static void Demo(System.Windows.Controls.TextBlock outputBlock) { // Define an array of all format specifiers. string[] formats = { "N", "D", "B", "P", "X" }; Guid guid = Guid.NewGuid(); // Create an array of valid Guid string representations. string[] stringGuids = new string[formats.Length]; for (int ctr = 0; ctr < formats.Length; ctr++) stringGuids[ctr] = guid.ToString(formats[ctr]); // Parse the strings in the array using the "B" format specifier. foreach (var stringGuid in stringGuids) { try { Guid newGuid = Guid.ParseExact(stringGuid, "B"); outputBlock.Text += String.Format("Successfully parsed {0}\n", stringGuid); } catch (ArgumentNullException) { outputBlock.Text += "The string to be parsed is null.\n"; } catch (FormatException) { outputBlock.Text += String.Format("Bad Format: {0}\n", stringGuid); } } } } // The example displays the following output: // Bad Format: eb5c8c7d187a44e68afb81e854c39457 // Bad Format: eb5c8c7d-187a-44e6-8afb-81e854c39457 // Successfully parsed {eb5c8c7d-187a-44e6-8afb-81e854c39457} // Bad Format: (eb5c8c7d-187a-44e6-8afb-81e854c39457) // Bad Format: {0xeb5c8c7d,0x187a,0x44e6,{0x8a,0xfb,0x81,0xe8,0x54,0xc3,0x94,0x57}}