하이픈없이 GUID 생성


104

내 코드에서 다음 문을 사용하여 GUID를 생성하고 있습니다.

byte[ ] keyBytes = Encoding.UTF8.GetBytes( Guid.NewGuid( ).ToString( ).Substring( 0, 12 ) );

그러나 GUID가 생성되면 하이픈 문자도 포함되어 있습니다. 문자 (대문자 및 소문자)와 숫자만으로 GUID를 생성하려면 어떻게해야합니까? 나는 하이픈을 원하지 않습니다. 누군가 나에게 그렇게 생각할 수 있습니까?

답변:


273

Guid의 (표준) 문자열 표현에 대해 이야기하고 있습니다. Guid 자체는 실제로 128 비트 정수 값입니다.

Guid.ToString(String)과부하 와 함께 "N"지정자를 사용할 수 있습니다 .

Guid.NewGuid().ToString("N");

기본적으로 문자는 소문자입니다. 대문자 만있는 Guid는 모두 대문자로 수동으로 변환해야만 얻을 수 있습니다. 예 :

Guid.NewGuid().ToString("N").ToUpper();

문자 나 숫자 만있는 GUID는 의미가 없습니다. guid 문자열 표현은 16 진수이므로 항상 둘 다 포함합니다.


숫자와 함께 대문자와 소문자 모두 GUID를 만들 수 있습니까 ???
하리시 쿠마르

7
@HarishKumar 말도 안돼. GUID 문자열은 16 진수입니다. 그 표기법에서 'a'는 'A'와 같습니다. 그 때문에 원하는 대 / 소문자에있는 모든 문자를 인쇄 할 수 있지만 실제로는 그 점을 알 수 없습니다.
Christian.K

하지만 내가 원하는 것은 소문자, 대문자 및 숫자의 혼합 인 guid 문자열입니다 ... dis sort를 달성 할 수 있습니까 ???
하리시 쿠마르

7
@HarishKumar 어떤 글자가 대문자이고 어떤 글자가 소문자인지 어떻게 결정합니까? 물론 string.Replace(char, char)그것을 달성하기 위해 자유롭게 사용할 수 있지만 실제로는 무의미하고 불필요합니다. 새 질문을 게시하는 것을 고려하고 실제로 달성하고 싶은 것이 무엇인지 물어보십시오. GUID 문자열에서 하이픈을 제거하는 것 이상으로 보입니다.
Christian.K

0
Guid.NewGuid().ToString().Replace("-", string.Empty)

20
이것이 작업을 수행하지만 다른 작업이 없다면 추가 작업이며 불필요한 문자열 할당 일 가능성이 높습니다.
Christian.K
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.