.NET / C #-char []를 문자열로 변환


407

char[]문자열로 바꾸는 올바른 방법은 무엇입니까 ?

ToString()문자의 배열 방법은 트릭을하지 않습니다.

답변:


677
char[] chars = {'a', ' ', 's', 't', 'r', 'i', 'n', 'g'};
string s = new string(chars);

12
참고 new string(null)수율 String.Empty하지를 null ! 유지하려는 경우 null확장 방법을 만들 수 있습니다 static string ToStringSafe(this char[] buf) { return buf == null ? null : new string(buf); }.
Skod

8
@Skod : "새로운"표현식이 객체 인스턴스 이외의 값을 반환하는 것이 불가능하다는 것을 알았습니다.
Matti Virkkunen

@MattiVirkkunen : 예외를 던지는 것도 합리적입니다. 이것이 문자열 생성자에 null을 전달할 때 추측 한 동작입니다.
찰스 테일러

81

char []를 허용하는 문자열 생성자를 사용하십시오.

char[] c = ...;
string s = new string(c);

54
당신이 3 분 더 빨랐다면, 질문을하기 전에 대답했을 것입니다!
DCastenholz

1
몇 분만 잊어 17 초에 불과합니다. 바로 위의 답변은 사이트에서 두 번째로 높은 투표 답변입니다. 사실 저는 지금 여기 있습니다. 누군가 10 년 후에 다시 투표를했기 때문입니다. 그리고 두 답변은 전혀 다르지 않습니다 ...하지만 광산은 17 초 더 빨리 게시되었으며 이는 500 투표 차이를 의미합니다 : /
Joel Coehoorn


28

다른 방법 :

char[] chars = {'a', ' ', 's', 't', 'r', 'i', 'n', 'g'};
string s = string.Join("", chars);
//we get "a string"
// or for fun:
string s = string.Join("_", chars);
//we get "a_ _s_t_r_i_n_g"

string.Joinstring[]대신에 수락char[]
sky91

@ sky91뿐만 아니라, 당신은) String.Join <T> 방법 및 매개 변수와 같은 T [], T.ToString을 (사용할 수 있습니다 호출됩니다
정액 Miroshnichenko

1
다음에 string.Join<char>("_", chars)대신 써야 합니다string.Join("_", chars)
sky91

2
컴파일 타임에 chars 유형이 알려지면 컴파일러에서 자동으로 수행합니다.
Semen Miroshnichenko

<char> 유형을 정의하지 않으면 컴파일 오류가 발생하기 때문에 이상합니다.
sky91


15

chararray를 인수, 시작 위치 및 배열 길이로 허용하는 문자열 생성자를 사용하십시오. 구문은 다음과 같습니다.

string charToString = new string(CharArray, 0, CharArray.Count());

나는 그것이 내가 찾던 것이라고 생각합니다. 그러나 CharArray라는 클래스는 몰랐습니다. 아마도 다음과 같은 의미 char[] charArray = new char[5] { 'a', 'b', 'c', '\0', '\0' }; string charsAsString = new string(charArray, 0, 3); // only want part of array.
였습니까?

CharArray는 클래스가 아니며 char [] 유형의 변수
일뿐입니다

13

다른 대안

char[] c = { 'R', 'o', 'c', 'k', '-', '&', '-', 'R', 'o', 'l', 'l' };
string s = String.Concat( c );

Debug.Assert( s.Equals( "Rock-&-Roll" ) );
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.