> 백엔드 개발 > C++ > C#에서 명령줄 매개변수를 효율적으로 분할하는 방법은 무엇입니까?

C#에서 명령줄 매개변수를 효율적으로 분할하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2025-01-15 11:39:50
원래의
870명이 탐색했습니다.

How to Efficiently Split Command-Line Parameters in C#?

C# 명령줄 매개변수 분할 기술

소개

C#에서는 명령줄 인수가 포함된 단일 문자열에서 단일 인수를 추출하는 것이 일반적인 작업입니다. 그러나 이 목적을 위해 직접적으로 설계된 기능이 없을 수도 있습니다. 이 기사에서는 표준 기능이나 맞춤형 솔루션을 사용하여 이를 달성하는 기술을 자세히 살펴봅니다.

표준 분할 기능

안타깝게도 C#에서는 개별 문자 평가를 기반으로 문자열을 분할하는 내장 함수를 제공하지 않습니다. 이는 우리가 보다 창의적인 접근 방식에 의존해야 함을 의미합니다.

Lambda 기능을 활용한 맞춤형 솔루션

한 가지 방법은 특정 문자가 문자열을 분할해야 하는지 여부를 결정하는 람다 함수를 만드는 것입니다. 이 함수를 사용하면 C#의 Split 메서드를 활용하여 그에 따라 문자열을 분할할 수 있습니다. 예시는 다음과 같습니다.

<code class="language-csharp">public static IEnumerable<string> SplitCommandLine(string commandLine)
{
    bool inQuotes = false;

    return commandLine.Split(c =>
    {
        if (c == '\"')
            inQuotes = !inQuotes;

        return !inQuotes && c == ' ';
    })
    .Select(arg => arg.Trim().TrimMatchingQuotes('\"'))
    .Where(arg => !string.IsNullOrEmpty(arg));
}</code>
로그인 후 복사

TrimMatchingQuotes 확장 메서드는 문자열의 시작과 끝에서 일치하는 따옴표를 제거합니다.

맞춤형 분할 및 다듬기 확장 방법

또 다른 옵션은 람다 함수를 입력으로 받아들이는 Split 메서드와 따옴표 자르기를 처리하는 TrimMatchingQuotes 메서드를 포함하도록 String 클래스를 확장하는 것입니다. 이러한 확장 프로그램은 다음과 같습니다.

<code class="language-csharp">public static IEnumerable<string> Split(this string str, Func<char, bool> controller)
{
    int nextPiece = 0;

    for (int c = 0; c < str.Length; c++)
    {
        if (controller(str[c]))
        {
            yield return str.Substring(nextPiece, c - nextPiece).Trim();
            nextPiece = c + 1;
        }
    }
    yield return str.Substring(nextPiece).Trim();
}

public static string TrimMatchingQuotes(this string input, char quote)
{
    if ((input.Length >= 2) && (input[0] == quote) && (input[input.Length - 1] == quote))
        return input.Substring(1, input.Length - 2);

    return input;
}</code>
로그인 후 복사

종합응용

이 접근 방식을 사용하면 명령줄 인수 문자열을 단일 인수 배열로 분할하여 명령줄에서 직접 인수를 지정하는 동작을 복제할 수 있습니다.

결론

C#에는 명령줄 인수 분할을 위한 기능이 부족하지만 람다 함수를 사용하거나 String 클래스를 확장하여 사용자 지정 솔루션을 구현할 수 있는 유연성을 제공합니다. 이러한 방법은 추가 처리 또는 실행을 위해 개별 매개변수를 추출하는 효율적이고 안정적인 방법을 제공합니다.

위 내용은 C#에서 명령줄 매개변수를 효율적으로 분할하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿