C #에서 목록을 문자열로 변환 목록을 문자열로 어떻게 변환합니까? toStringList 객체에서 실행

C #에서 목록을 문자열로 어떻게 변환합니까?

toStringList 객체에서 실행 하면 다음과 같은 결과가 나타납니다.

System.Collections.Generic.List`1 [System.String]



답변

어쩌면 당신은하려고합니다

string combindedString = string.Join( ",", myList.ToArray() );

“,”를 목록의 요소를 나누려는 항목으로 바꿀 수 있습니다.

편집 : 언급으로 코멘트에 당신은 또한 할 수

string combindedString = string.Join( ",", myList);

참고:

Join<T>(String, IEnumerable<T>)
Concatenates the members of a collection, using the specified separator between each member.


답변

나는 내 직감과 함께 가고 ToString목록의 각 요소를 호출 한 결과를 연결하려고한다고 가정 합니다.

var result = string.Join(",", list.ToArray());


답변

당신은 사용할 수 있습니다 string.Join:

List<string> list = new List<string>()
{
    "Red",
    "Blue",
    "Green"
};

string output = string.Join(Environment.NewLine, list.ToArray());
Console.Write(output);

결과는 다음과 같습니다.

Red
Blue
Green

에 대한 대안으로 Environment.NewLine, 선택한 문자열 기반 줄 구분자로 바꿀 수 있습니다.


답변

간단한 조인보다 약간 더 복잡한 것을 원한다면 LINQ를 사용할 수 있습니다.

var result = myList.Aggregate((total, part) => total + "(" + part.ToLower() + ")");

[ “A”, “B”, “C”]를 가져 와서 “(a) (b) (c)”를 생성합니다.


답변

String.Join(" ", myList)또는 String.Join(" ", myList.ToArray()). 첫 번째 인수는 하위 문자열 사이의 구분 기호입니다.

var myList = new List<String> { "foo","bar","baz"};
Console.WriteLine(String.Join("-", myList)); // prints "foo-bar-baz"

.NET 버전에 따라 먼저 목록에서 ToArray ()를 사용해야 할 수도 있습니다.


답변

당신은 List<string>-그래서 당신이 그들을 연결하려는 경우, 같은

string s = string.Join("", list);

작동합니다 (최소한 .NET 4.0에서). 첫 번째 매개 변수는 분리 문자입니다. 따라서 쉼표로 구분할 수도 있습니다.

또한 목록을 구성하는 대신 StringBuilder를 사용하여 연결을 실행하는 방법을 살펴볼 수도 있습니다.


답변

.ToString()참조 유형의 방법은 일반적으로 다시 해결 System.Object.ToString()이 파생 타입을 오버라이드 (override)하지 않는 한 (아마도 내장 타입의 확장 방법을 사용하여). 이 메소드의 기본 동작은 호출 된 유형의 이름을 출력하는 것입니다. 여러분이보고있는 것은 예상되는 행동입니다.

string.Join(", ", myList.ToArray());이것을 달성하기 위해 무언가를 시도 할 수 있습니다. 추가 단계이지만 확장 방법 System.Collections.Generic.List<T>을 사용하여 조금 더 쉽게 만들 수 있습니다. 이 같은:

public static class GenericListExtensions
{
    public static string ToString<T>(this IList<T> list)
    {
        return string.Join(", ", list);
    }
}

(이것은 자유 코드이며 테스트되지 않은 코드입니다. 현재 컴파일러가 유용하지 않으므로 약간 실험 해보십시오.)