我正在将字符串转换为guid以检查字符串是否为c#.net 4.0中的有效guid 字符串是:
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而不是:11111111-1111-1111-1111-111111111111
答案 0 :(得分:4)
如果您只想检查Guid
是否有不同的字符,可以检查它包含的不同字节数:
int count = yourGuid.ToByteArray().Distinct().Count();
对于Guid.Empty
或11111111-1111-1111-1111-111111111111
,结果将为1
对于dc6a1ad8-4743-4487-a28e-54d31870dfcb
,结果为16
。
您只需要确定需要多大的数量才能接受Guid
为“正常”。