问题描述
是否有更简单的方法将字符串转换为Guid?
?刚才我有以下代码:
if (Guid.TryParse(request.querystringparameters["key"],out Guid result))
{
whateverFunction(result);
}
else
{
whateverFunction(null);
}
我希望有一种更简单的方法,例如强制转换为(Guid?)
或执行new Guid?()
,但是它们似乎都不起作用。这需要在程序中多次发生,很明显,我可以将其放在函数中,这很好,但是希望有一种更简洁的方法。
解决方法
或者,您可以这样编写代码:
var nullableGuid = Guid.TryParse(request.QueryStringParameters["key"],out var result)
? result
: (Guid?)null;
whateverFunction(nullableGuid);
,
只需编写您自己的方法:
public Guid? TryParseGuid(string input)
{
if (Guid.TryParse(input,out Guid result))
{
return result;
}
else
{
return null;
}
}
您可以通过以下方式使用它:
whateverFunction(TryParseGuid(request.QueryStringParameters["key"]));
,
如果您的应用程序使用了大量的字符串,则使用扩展名代替:
public static class AppExtension
{
public static Guid? ToGuid(this string source)
{
return Guid.TryParse(source,out Guid result) ? (Guid?) result : null;
}
}
用法是:
var guidStr = "6b97c671-8cc4-4712-b3df-9dad09321a36";
var guid = guidStr.ToGuid();