C# 문자열의 첫 글자를 효율적으로 대문자로 사용
소개
문자열의 첫 글자를 대문자로 시작하는 것은 많은 프로그래밍 애플리케이션에서 일반적인 작업입니다. 성능을 최적화하려면 효율적인 방법을 선택하는 것이 중요합니다. 이 문서에서는 C#에서 대문자 사용을 구현하는 여러 가지 방법을 살펴보고 성능 차이를 분석하는 데 중점을 둡니다.
코드 예시
C# 8, .NET Core 3.0 또는 .NET Standard 2.1
<code class="language-csharp">public static string FirstCharToUpper(this string input) => input switch { null => throw new ArgumentNullException(nameof(input)), "" => throw new ArgumentException($"{nameof(input)} cannot be empty", nameof(input)), _ => string.Concat(input[0].ToString().ToUpper(), input.AsSpan(1)) };</code>
C# 8
<code class="language-csharp">public static string FirstCharToUpper(this string input) => input switch { null => throw new ArgumentNullException(nameof(input)), "" => throw new ArgumentException($"{nameof(input)} cannot be empty", nameof(input)), _ => input[0].ToString().ToUpper() + input.Substring(1) };</code>
C# 7
<code class="language-csharp">public static string FirstCharToUpper(this string input) { switch (input) { case null: throw new ArgumentNullException(nameof(input)); case "": throw new ArgumentException($"{nameof(input)} cannot be empty", nameof(input)); default: return input[0].ToString().ToUpper() + input.Substring(1); } }</code>
이전 버전(권장하지 않음, 성능 저하)
<code class="language-csharp">public static string FirstCharToUpper(string input) { if (String.IsNullOrEmpty(input)) throw new ArgumentException("ARGH!"); return input.First().ToString().ToUpper() + String.Join("", input.Skip(1)); }</code>
<code class="language-csharp">public static string FirstCharToUpper(string input) { if (String.IsNullOrEmpty(input)) throw new ArgumentException("ARGH!"); return input.First().ToString().ToUpper() + input.Substring(1); }</code>
성능 고려 사항
이러한 코드 조각 중에서 메모리 할당이 가장 적고 문자열 조작이 가장 효율적인 방법이 최고의 성능을 발휘합니다. 첫 번째 솔루션은 .NET Core 3.0 또는 .NET Standard 2.1의 ReadonlySpan<char>
을 사용하며, 이는 다른 방법에 비해 뛰어난 성능을 제공합니다.
위 내용은 최적의 성능으로 C#에서 문자열의 첫 글자를 어떻게 대문자로 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!