C# 有没有办法知道guid是否看起来像“a”;“正常”;带字符和数字的guid?

C# 有没有办法知道guid是否看起来像“a”;“正常”;带字符和数字的guid?,c#,.net,visual-studio-2010,guid,C#,.net,Visual Studio 2010,Guid,在c#.net 4.0中,我正在将字符串转换为guid,以检查该字符串是否为有效的guid 字符串为: string guid=“11111111-1111-1111-1111-111111111” 此guid对我来说应该无效,即使它的字符数与guid的字符数相同。有没有办法检查guid是否与具有不同字符和数字的“普通”guid相似 所有这些方法都不起作用,因为它们返回的guid对我来说是有效的 Guid.Parse Guid.TryParse Guid.TryParseExact 谢谢大

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

string guid=“11111111-1111-1111-1111-111111111”

此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-111111111

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

int count = yourGuid.ToByteArray().Distinct().Count();
对于
Guid.Empty
11111111-1111-1111-1111-111111111
,结果将是
1

对于
dc6a1ad8-4743-4487-a28e-54d31870dfcb
,结果为
16


您只需决定接受
Guid
为“正常”所需的数字大小即可。

好的,那么您的自定义逻辑是什么,告诉您它不是有效的Guid?它非常有效。您首先需要定义什么是有效的GUID。@Esailija-但这不是问题所在
Guid.Empty
返回由所有
0
s组成的有效Guid实例。人脑和随机性有问题->它们不合适!123456789(由RNG创建)与6481286412和111111111一样随机。第一个和第三个数字看起来不那么随机,因为你的大脑总是试图找到一个原因/意义/模式。为什么人们会因为一个问题而愤怒?上帝……@syncis:老实说,那是胡说八道。12345678-ABCD-ABCD-ABCD-ABCD-ABCD-123456789012-看起来“假”,会通过考试的。顺便说一句:通过整理“奇怪”的guid,你可以摆脱一些随机性@igrimpe:
12345678-ABCD-ABCD-ABCD-123456789012
返回
7
。正如我所说的,决定哪一个数字足够高,可以认为<代码> GUID <代码>是“正常”的,这显然取决于“正常”的定义。@ DanielHilgarth:我并不是说这是一个特别明智的事情。我只是回答这个问题!:)@syncis:您没有指定您所看到的“正常”GUID。这就是我和其他人想要告诉你的。