在日常編程中,Guid是比較常用的,最常見的使用就是如下所示:
string id = Guid.NewGuid().ToString();
這條語句會生成一個新的Guid並轉成字符串,如下:
// 10244798-9a34-4245-b1ef-9143f9b1e68a
但是還有一些情況下,我們會有一些細節上的差異,如:
遇到這種情況就比較麻煩了,最常見的一種就是自己把guid生成的字符串解析處理,比如加括號,或者把連字符用空字符替換掉等:
var str = guid.ToString(); var id = "{" + str + "}"; var id2 = str.Replace("-", ""); var id3 = "(" + str + ")";
其實不用這麼麻煩的,在ToString的時候,有一個重載的函數:
ToString(String)
通過傳入格式化字符串,就可以輸出這種類型的guid 字符串了。
示例如下:
var guid = Guid.NewGuid(); // 10244798-9a34-4245-b1ef-9143f9b1e68a Console.WriteLine(guid.ToString("D")); // 102447989a344245b1ef9143f9b1e68a Console.WriteLine(guid.ToString("N")); // {10244798-9a34-4245-b1ef-9143f9b1e68a} Console.WriteLine(guid.ToString("B")); // (10244798-9a34-4245-b1ef-9143f9b1e68a) Console.WriteLine(guid.ToString("P"));
注意:這裡的D,N,B,P是不區分大小寫的,如果傳入空字符串,則使用的默認的D類型,其它情況都會報異常。
在MSDN中查詢到還有一種“X”類型,但是我在.NetFx 3.5下,使用時會彈出異常:
未處理的異常: System.FormatException: 格式字符串只能是“D”、“d”、“N”、“n ”、“P”、“p”、“B”或“b”。
在 System.Guid.ToString(String format, IFormatProvider provider)
該文章轉發微博為: http://www.cnblogs.com/greenerycn/archive/2010/04/25/guid_tostring_format.html(原著)