>我正在将字符串转换为 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 而不是这个:
如果您只想检查Guid
是否具有不同的字符,则可以检查它包含的不同字节数:
int count = yourGuid.ToByteArray().Distinct().Count();
对于Guid.Empty
或11111111-1111-1111-1111-111111111111
,结果将是1
。
对于dc6a1ad8-4743-4487-a28e-54d31870dfcb
,结果是 16
。
您只需要确定数字需要多大才能接受Guid
为"正常"。