정수 배열을 쉼표로 구분 된 문자열로 변환


273

간단한 질문입니다. 나는 C #의 초보자입니다. 다음을 수행하는 방법

  • 정수 배열을 쉼표로 구분 된 문자열로 변환하고 싶습니다.

나는 가지고있다

int[] arr = new int[5] {1,2,3,4,5};

하나의 문자열로 변환하고 싶습니다.

string => "1,2,3,4,5"

답변:


539
var result = string.Join(",", arr);

이것은 다음과 같은 과부하를 사용합니다 string.Join.

public static string Join<T>(string separator, IEnumerable<T> values);

이 경우 명시적인 일반 인수를 전달할 필요가 없습니다. 추론됩니다.
leppie

6
Pre .NET 4 string.Join ( ",", Array.ConvertAll (arr, i => i.ToString ()))
TPAKTOPA 2014

이것을 반대로 할 수있는 간단한 방법이 있습니까? 문자열을 가져 와서 배열에 넣습니까?
Kory

3
@Kory : String.Split 메서드를 사용하여 msdn.microsoft.com/en-us/library/를
Cheng Chen

132

.NET 4

string.Join(",", arr)

.NET 이전

string.Join(",", Array.ConvertAll(arr, x => x.ToString()))

17
.NET4 이전 버전에 감사드립니다!
kdenney

1
방금 .net 4 버전을 사용할 수 없다는 것을 깨달았으며 대답을 볼 때까지 왜 오류가 발생했는지 이해하지 못했습니다. 감사합니다.
Luis Tellez

.NET 4.5를 사용하고 있습니다. 쉼표로 구분 된 숫자를 문자열로 연결하려고했습니다. "string []을 char로 변환 할 수 없습니다"라는 오류가 발생했습니다. 따라서 이전 버전은 완벽하게 작동했습니다.
Prasanth G

10
int[] arr = new int[5] {1,2,3,4,5};

Linq를 사용할 수 있습니다

String arrTostr = arr.Select(a => a.ToString()).Aggregate((i, j) => i + "," + j);

5

이 작업을 쉽게하기 위해 한 쌍의 확장 방법을 사용할 수 있습니다.

public static string ToDelimitedString<T>(this IEnumerable<T> lst, string separator = ", ")
{
    return lst.ToDelimitedString(p => p, separator);
}

public static string ToDelimitedString<S, T>(this IEnumerable<S> lst, Func<S, T> selector, 
                                             string separator = ", ")
{
    return string.Join(separator, lst.Select(selector));
}

이제는 다음과 같습니다.

new int[] { 1, 2, 3, 4, 5 }.ToDelimitedString();

3

LINQ Aggregate메서드를 사용 하여 정수 배열을 쉼표로 구분 된 문자열로 변환

var intArray = new []{1,2,3,4};
string concatedString = intArray.Aggregate((a, b) =>Convert.ToString(a) + "," +Convert.ToString( b));
Response.Write(concatedString);

출력은

1,2,3,4

이것은 .net 4가 설치되어 있지 않은 경우 사용할 수있는 솔루션 중 하나입니다.


그러나 문자열 연결로 인해 성능이 저하됩니다.
Simon Belanger

네, 그것은 제대로 수행하지만 .NET 4.0 전에 String.join 만 우리는 또한 더 나은 수행 만, null 예외의 문제가 먹 ToString을 사용할 수있는 문자열로 변환해야하는 경우 parameter.Thus 같은 문자열 배열 걸릴
수실 펜디 교수
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.