C #에서 목록을 문자열로 어떻게 변환합니까?
toString
List 객체에서 실행 하면 다음과 같은 결과가 나타납니다.
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);
}
}
(이것은 자유 코드이며 테스트되지 않은 코드입니다. 현재 컴파일러가 유용하지 않으므로 약간 실험 해보십시오.)