有什么方法可以知道 guid 是否看起来像带有字符和数字的"normal" GUID?



>我正在将字符串转换为 guid 以检查该字符串是否是有效的 guid , 在 c# .net 4.0 中字符串是:

string guid = "11111111-1111-1111-1111-111111111111";

这个 guid 对我来说应该是无效的,即使它有和 guid 一样多的字符。有没有办法检查 guid 是否看起来像具有不同字符和数字的"普通"GUID?

所有这些方法都不起作用,因为它们返回的 guid 对我有效。

Guid.Parse
Guid.TryParse
Guid.TryParseExact

谢谢!

编辑:

澄清一下,我需要检查我的 guid 是否像这些 Guids : dc6a1ad8-4743-4487-a28e-54d31870dfcb

我们可以抛弃"无效"和"有效"这两个词,因为人们似乎有点关注这一点。所以我需要确保 guid 看起来更像这样:dc6a1ad8-4743-4487-a28e-54d31870dfcb 而不是这个:

111111111-1111-1111-1111-11111111111111

如果您只想检查Guid是否具有不同的字符,则可以检查它包含的不同字节数:

int count = yourGuid.ToByteArray().Distinct().Count();

对于Guid.Empty11111111-1111-1111-1111-111111111111,结果将是1
对于dc6a1ad8-4743-4487-a28e-54d31870dfcb,结果是 16

您只需要确定数字需要多大才能接受Guid为"正常"。

最新更新