programing

C# 구분 기호가 있는 문자열에 대한 목록입니다.

fastcode 2023. 4. 25. 23:11
반응형

C# 구분 기호가 있는 문자열에 대한 목록입니다.

C#에 일부 컬렉션을 문자열로 빠르게 변환하고 구분 기호로 값을 구분하는 기능이 있습니까?

예를 들어 다음과 같습니다.

List<string> names--> 다시 한 번 말씀해 주세요.string names_together = "John, Anna, Monica"

를 사용할 수 있습니다.만약 당신이 가지고 있다면요List<string>먼저 전화를 걸 수 있습니다.

List<string> names = new List<string>() { "John", "Anna", "Monica" };
var result = String.Join(", ", names.ToArray());

.NET 4에서는 다음을 수행할 필요가 없습니다.ToArray더 이상, 오버로드가 있기 때문입니다.String.Join시간이 걸립니다.IEnumerable<string>.

의 최신 버전입니다.NET이 다릅니다.String.Join오버로드에서는 다양한 방법을 사용하여 결과를 생성합니다.코드 성능에 영향을 줄 수 있습니다.

예를 들어, 다음을 수락하는 사람들입니다.IEnumerable사용하다StringBuilder보닛 아래에요어레이를 수용하는 어레이는 어레이 및 포인터와 함께 고도로 최적화된 구현을 사용합니다.

결과는 다음과 같습니다.

존, 안나, 모니카요

원한다면 linq를 사용하여 이 작업을 수행할 수도 있습니다.

var names = new List<string>() { "John", "Anna", "Monica" };
var joinedNames = names.Aggregate((a, b) => a + ", " + b);

Quartermeister의 답변에서 비-linq 구문을 선호합니다 그리고 제 생각엔Aggregate더 많은 문자열 연결 작업을 수행할 수 있습니다.

모든 프로젝트에서 사용하는 승인된 답변을 기반으로 한 확장 방법입니다.

public static string StringJoin(this IEnumerable<string> values, string separator)
{
    return string.Join(separator, values);
}

용도는 다음과 같습니다.

var result = names.StringJoin(", ");

추신. 절대 사용하지 마세요.Aggregate이것에 대해, 그것은 두 개의 진도보다 느립니다string.Join

언급URL : https://stackoverflow.com/questions/3575029/c-sharp-liststring-to-string-with-delimiter 입니다.

반응형