programing

목록을 C#의 문자열로 변환합니다.

javamemo 2023. 4. 25. 21:46
반응형

목록을 C#의 문자열로 변환합니다.

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

실행할 때요toStringList 객체의 경우 다음과 같습니다.

System.Collections입니다.포괄적인.목록1[시스템]을 클릭합니다.문자열입니다.

아마도 당신은 하려고 하는 것 같습니다.

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

"를 목록의 요소를 분할할 기준으로 바꿀 수 있습니다.

편집: 설명에서 언급한 바와 같이 다음을 수행할 수도 있습니다.

string combinedString = 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());

다음을 사용할 수 있습니다.

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()파생 유형(내장 유형에 확장 메서드를 사용하여 재정의)으로 재정의하지 않는 한 말입니다.이 메서드의 기본 동작은 호출되는 유형의 이름을 출력하는 것입니다.그래서 지금 보고 계신 건 예상된 행동이에요

이런 걸 시도해 볼 수도 있어요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[] lines = File.ReadAllLines(Environment.CurrentDirectory + "\\Notes.txt");  
string marRes = string.Join(Environment.NewLine, lines.ToArray());

누군가를 도울 수 있기를 바랍니다!!!!

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

이 질문에 대한 직접적인 대답은 바로 이겁니다.String.Join이에요

하지만 조작이 필요한 경우에는 조작을 할 수 있습니다.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();

저는 이게 효과가 있는 것 같아요.

var combindedString = new string(list.ToArray());

목록에 필드/속성이 있고 특정 값(예: FirstName)을 사용하려는 경우 다음을 수행할 수 있습니다.

string combindedString = string.Join( ",", myList.Select(t=>t.FirstName).ToArray() );
string strs="111,222,333"
string.Join(",",strs.Split(',').ToList().Select(x=>x.PadLeft(6,'0')).ToArray());

출력입니다.

000111,000222,000333

언급URL : https://stackoverflow.com/questions/4981390/convert-a-list-to-a-string-in-c-sharp 입니다.

반응형