728x90
728x170
■ StringBuilder 클래스에서 확장 기능을 사용하는 방법을 보여준다.
▶ 예제 코드 (C#)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
/// <summary>
/// 문자열 빌더 확장
/// </summary>
public static class StringBuilderExtension
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Static
//////////////////////////////////////////////////////////////////////////////// Public
#region 포맷 라인 추가하기 - AppendFormatLine(stringBuilder, format, argumentArray)
/// <summary>
/// 포맷 라인 추가하기
/// </summary>
/// <param name="stringBuilder">문자열 빌더</param>
/// <param name="format">포맷 문자열</param>
/// <param name="argumentArray">인자 배열</param>
/// <returns>문자열 빌더</returns>
public static StringBuilder AppendFormatLine
(
this StringBuilder stringBuilder,
string format,
params object[] argumentArray
)
=> stringBuilder.AppendFormat(format, argumentArray).AppendLine();
#endregion
#region 특정 조건 해당시 추가하기 - AppendWhen(stringBuilder, predicateFunction, function)
/// <summary>
/// 특정 조건 해당시 추가하기
/// </summary>
/// <param name="stringBuilder">문자열 빌더</param>
/// <param name="predicateFunction">판정 함수</param>
/// <param name="function">함수</param>
/// <returns>문자열 빌더</returns>
public static StringBuilder AppendWhen
(
this StringBuilder stringBuilder,
Func<bool> predicateFunction,
Func<StringBuilder, StringBuilder> function
)
=> predicateFunction() ? function(stringBuilder) : stringBuilder;
#endregion
#region 열거 가능형 추가하기 - AppendEnumerable<T>(stringBuilder, sourceEnumerable, function)
/// <summary>
/// 열거 가능형 추가하기
/// </summary>
/// <typeparam name="TItem">항목 타입</typeparam>
/// <param name="stringBuilder">문자열 빌더</param>
/// <param name="sourceEnumerable">소스 열거 가능형</param>
/// <param name="function">누적 함수</param>
/// <returns>문자열 빌더</returns>
public static StringBuilder AppendEnumerable<TItem>
(
this StringBuilder stringBuilder,
IEnumerable<TItem> sourceEnumerable,
Func<StringBuilder, TItem, StringBuilder> function
)
=> sourceEnumerable.Aggregate(stringBuilder, function);
#endregion
}
728x90
그리드형(광고전용)
'C# > Common' 카테고리의 다른 글
[C#/COMMON] ThreadPool 클래스 : QueueUserWorkItem 정적 메소드를 사용해 스레드 풀의 스레드 실행하기 (0) | 2019.11.22 |
---|---|
[C#/COMMON] Stopwatch 클래스 사용하기 (0) | 2019.11.22 |
[C#/COMMON] 회문(Palindrome) 여부 구하기 (0) | 2019.11.20 |
[C#/COMMON] StreamWriter 클래스 : 콘솔 출력하기 (0) | 2019.11.20 |
[C#/COMMON] IDisposable 헬퍼 사용하기 (0) | 2019.11.19 |
[C#/COMMON] CPU 부하 생성하기 (0) | 2019.10.16 |
[C#/COMMON] ServicePointManager 클래스 : DefaultConnectionLimit 정적 속성을 사용해 웹 요청 동시 접속 수 설정하기 (0) | 2019.10.12 |
[C#/COMMON] 사용자 계정 로그온 권한 조사하기 (0) | 2019.10.11 |
[C#/COMMON] 한글 문자열 확장 처리 기능 사용하기 (0) | 2019.10.07 |
[C#/COMMON] WebClient 클래스 : 외부 IP 주소 구하기 (0) | 2019.10.06 |