2010-02-11 1 views
20

배열이 있고 ToString을 수행하는 경우 배열 값을 하나의 긴 쉼표로 구분 된 문자열로 배열하거나 배열에서 사용할 수 없습니까? 당신이 string의 배열이있는 경우Array.ToString()

+13

시도해보고 결과를 조사 했습니까? –

+0

실제로 모르겠지만 시도해 볼 수는 있습니다 ... – Ian

+0

MyCustomType []이 아닌 배열 [] – PositiveGuy

답변

45

옵션 1

, 당신은 String.Join 사용할 수 있습니다

string[] values = ...; 

string concatenated = string.Join(",", values); 

옵션 2

당신이 배열을 처리하는 경우 다른 유형의 .NET 3.5 이상을 사용하는 경우 LINQ를 사용할 수 있습니다.

string concatenated = string.Join(",", 
          values.Select(x => x.ToString()).ToArray()); 
+0

C# dude의 배열이 있습니다. seperator first. ;-) –

+0

@Sky : 매개 변수의 순서는 언어와 아무 관계가 없습니다.) –

+0

@Adam - 값을 먼저 넣는 언어는 코딩하지 않았습니까? –

12

확실히 할 수는 있지만 기본 동작은 아닙니다. 가장 쉬운 방법은 그렇게 (어쨌든 .NET 3.5에서) 아마 :

string joined = string.Join(",", array.Select(x => x.ToString()).ToArray()); 

MoreLINQ이 할 수있는 기본 방법이 있습니다

string joined = array.ToDelimitedString(); 

또는 지정을 명시 적으로 구분 :

string joined = array.ToDelimitedString(","); 
1

아니요, 배열의 ToString은 객체의 유형 이름 문자열을 제공합니다. 대신 String.Join 메서드를 사용하십시오.

2

눈치 채지 못했습니다.

문자열 배열 위해 당신은 사용할 수 있습니다 : 당신이 그것을 직접 코딩 할 필요가 있다고 생각 다른 배열에 대한

string.Join(",", myArray) 

합니다.

+0

배열 유형의 ToString이 허용되는 경우 모든 값 유형에 대해 간단한 문자열 결합이 적용됩니다. 노출을위한 대부분의 다른 유형에는 친숙한 기본 ToString도 있습니다. –

+1

String.Join은 ToString()을 자동으로 호출하지 않습니다. 문자열을 문자열 배열로 변환해야합니다.이 문자열은 내 대답과 Adam에 따라 시작해야합니다. –

1

당신이 String.Join를 호출해야이 효과 (문자열, 문자열 [])

즉를 달성하기 위해

string[] stringArray = new string[] { "a", "b", "c" }; 
string.Join(",", stringArray); 
0

string.Concat(Object[] args)을 사용할 수 있습니다. 이 메서드는 args에있는 모든 개체의 ToString() 메서드를 호출합니다. 불행하게도

YourClass[] yourArray = { new YourClass(1), new YourClass(2), new YourClass(3) }; 
string concatenated = string.Concat(yourArray); 

이 방법 :

public class YourClass 
{ 
    private int number; 

    public YourClass(int num) 
    { 
     number = num; 
    } 

    public override string ToString() 
    { 
     return "#" + number; 
    } 
} 

지금 당신이 사용자 정의 클래스의 인스턴스의 배열을 연결할 수 있습니다 : 사용자 정의 클래스에서이 같은 사용자 정의 문자열 변환을 달성하기 위해 ToString() 방법을 대체 할 수 있습니다 구분 기호를 추가하지는 않지만 우아한 것으로 나타났습니다. 변수 concatenated"#1#2#2"을 포함합니다.