티스토리 뷰

코딩을 하다보면 문자열 처리를 하는 경우가 많다.

StringBuilder보다는 string이 가벼울거 같은 느낌적인 느낌에 (string.join 좋아, 짜릿해)

string을 많이 사용하지만, 메모리 낭비의 발생으로 인해 사용시 주의가 필요하다.

예건데, csv 파일을 만들면서 string += ",what" 을 사용하면 개체 생성과 관련한 오버헤드 비용이 증가한다고 할수 있다. 

 

string과 StringBuilder

string 

* 네임스페이스: System

* 문자열 개체의 불변성 : string는 생성된 후에 변경할 수 없다. 즉, 문자열 수정은 새로운 string을 반환한다. 

* 문자열 개체의 불변성으로 인하여 참조시 주의 해야 한다. 

 

// 예제1)
string s1 = "Hello ";
string s2 = s1;
s1 += "World";

System.Console.WriteLine(s2); // Output: Hello

Stringbuilder

* 네임스페이스: System.Text

* StringBuilder 개체 인스턴스화

 

예제) 

StringBuilder myStringBuilder = new StringBuilder("Hello World!");

myStringBuilder.Append("Nice to meet you.");

// 예제2) 

StringBuilder myStringBuilder = new StringBuilder("Hello World!");
myStringBuilder.Append("Nice to meet you.");

 

대신 테스트 해드립니다.

직접하면 좋겠지만 좋은 예제가 있어서 첨부.

https://afsdzvcx123.tistory.com/entry/C-%ED%99%9C%EC%9A%A9-String-StringBuilder-%EC%84%B1%EB%8A%A5-%EC%B0%A8%EC%9D%B4?category=784688 

 

[C# 활용] String, StringBuilder 성능 차이

소개 안녕하세요. 오늘은 C# 을 사용하면서 정말 많이 다루는 타입인 문자열(String, StringBuilder) 에 대해서 알려 드리려고 합니다. 그 중에서도 팁? 이라면 팁인 String과 StringBuilder 중 어느것을 활용

afsdzvcx123.tistory.com

결론 

잦은 수정이 있는 문자열 사용에서는 StringBuilder 사용을 생활화 하자.!

 

Reference

https://docs.microsoft.com/ko-kr/dotnet/standard/base-types/stringbuilder

 

.NET에서 StringBuilder 클래스 사용

.NET에서 StringBuilder 클래스를 사용하는 방법을 알아봅니다. 이 클래스를 사용하면 새 개체를 만들지 않고 문자열을 수정합니다.

docs.microsoft.com

 

https://docs.microsoft.com/ko-kr/dotnet/csharp/programming-guide/strings/

 

문자열 - C# 프로그래밍 가이드

C# 프로그래밍에서 문자열에 대해 알아봅니다. 문자열 선언과 초기화, 문자열 개체의 불변성 및 문자열 이스케이프 시퀀스에 대한 정보를 확인하세요.

docs.microsoft.com