微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C#-将字符串转换为可为空的Guid吗?

如何解决C#-将字符串转换为可为空的Guid吗?

是否有更简单的方法字符串转换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();

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。