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


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.