-3

我正在将字符串转换为 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 是否像这些 Guid:dc6a1ad8-4743-4487-a28e-54d31870dfcb

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

4

1 回答 1

4

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

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

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

您只需要决定要接受多大的数字才能接受Guid“正常”。

于 2012-11-22T14:01:22.143 回答