我需要根据从Mailchimp 1.0导出api中获得的文本转储中的字符串等效项来创建guid。
guid是包含反斜杠\字符的所有字符串,例如,此处是(截断)其中之一:“ \” 9ffd2c3-6er456ds \“”
当我将guid传递给以下方法时,然后尝试时,将无任何作用Guid.TryParse。
string[] values = sub.Split(',');
string rawguid = values[3];
var guid = rawguid.Replace("\\", "");
var tguid = rawguid.Trim();
var sguid = rawguid.Normalize().ToString();
Run Code Online (Sandbox Code Playgroud)
如何正确地将这些Guid字符串解析为Guid?
您的GUID中没有反斜杠- 字符串内的转义双引号引起了反斜杠:反斜杠正在转义其"内部。使用.Replace("\"","")删除它们。
除此之外-您没有有效的GUID-还有r一个s内部GUID 由32个数字组成,只能使用0-9a-fA-F。
使用Guid.ParseExact的示例:
using System;
public class Program
{
public static void Main()
{
var guid = Guid.ParseExact(
"\"ab9ffd2c3-6e456daaaaaaaaaaaaaaaaa\"" // guid with masked " inside
.Replace("-","") // remove all - for N
.Replace("\"",""), "N"); // remove all \" as well
Console.WriteLine( guid );
}
}
Run Code Online (Sandbox Code Playgroud)
得到一个解析的GUID:
ab9ffd2c-36e4-56da-aaaa-aaaaaaaaaaaa
Run Code Online (Sandbox Code Playgroud)