-3

c# .net 4.0 で、文字列を guid に変換して、文字列が有効な guid かどうかを確認しています。文字列は次のとおりです。

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 が次のようになっていることを確認する必要があります: 11111111-1111-1111-1111-111111111111 ではなく、dc6a1ad8-4743-4487-a28e-54d31870dfcb

4

1 に答える 1

4

に異なる文字が含まれているかどうかを確認したいだけの場合はGuid、含まれている個別のバイト数を確認できます。

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

Guid.Emptyまたはの場合11111111-1111-1111-1111-111111111111、結果は になります1
の場合dc6a1ad8-4743-4487-a28e-54d31870dfcb、結果は16です。

Guidを「通常」として受け入れるために必要な数値を決定する必要があります。

于 2012-11-22T14:01:22.143 に答える