Programming

C #에서 목록을 문자열로 변환

procodes 2020. 6. 2. 21:56
반응형

C #에서 목록을 문자열로 변환


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

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

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


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

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

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


나는 내 직감과 함께 가고 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);
    }
}

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


말하기는 어렵지만 아마도 다음과 같은 것을 찾고있을 것입니다.

var myString = String.Join(String.Empty, myList.ToArray());

목록의 각 항목에서 ToString () 메서드를 암시 적으로 호출하여 연결합니다.


목록의 항목을 큰 문자열로 바꾸려면 다음과 같이하십시오 String.Join("", myList). 일부 이전 버전의 프레임 워크에서는 IEnumerable을 두 번째 매개 변수로 전달할 수 없으므로 .ToArray ()를 호출하여 목록을 배열로 변환해야 할 수 있습니다.


The direct answer to your question is String.Join as others have mentioned.

However, if you need some manipulations, you can use Aggregate:

List<string> employees = new List<string>();
employees.Add("e1");
employees.Add("e2");
employees.Add("e3");

string employeesString = "'" + employees.Aggregate((x, y) => x + "','" + y) + "'";
Console.WriteLine(employeesString);
Console.ReadLine();

This method helped me when trying to retrieve data from Text File and store it in Array then Assign it to a string avariable.

string[] lines = File.ReadAllLines(Environment.CurrentDirectory + "\\Notes.txt");  
string marRes = string.Join(Environment.NewLine, lines.ToArray());

Hopefully may help Someone!!!!

참고URL : https://stackoverflow.com/questions/4981390/convert-a-list-to-a-string-in-c-sharp

반응형