在C#中打开Guid的最有效的方式

前端之家收集整理的这篇文章主要介绍了在C#中打开Guid的最有效的方式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以在C#中,switch语句只支持整数类型(不是Guid),所以简单的O(1)比较表看起来不可能.

在Guid上匹配的计算最有效的方法是什么?

起初我想

if(gMyGuid == new Guid("VALUE"))
else if (gMyGuid == new Guid("VALUE2")
else if (gMyGuid == new Guid("VALUE3")
...
else if (gMyGuid == new Guid("VALUEn")

然而,通过这样做,我每次都会创建一个新的Guid的实例来进行比较.我可以将Guid转换为字符串,然后比较字符串,但字符串比较是一个很长的字符串进行比较.

感谢任何建议.

解决方法

您可以创建一个 System.Collections.Generic.Dictionary< Guid,...>哪里是对你有用的东西

在程序启动时,使用您需要识别的GUID和值填充字典.

然后,使用字典的TryGetValue方法通过其引用来检索值.

我没有说出任何字面意思,因为我不知道你想要做什么.也许你想要运行一些函数,然后一个方法指针(Func< T>或类似的东西)可能是适当的,或者是提供要调用方法的接口类型.这取决于该guid的上下文/目的比较代码.

猜你在找的C#相关文章