>  Q&A  >  본문

C#을 사용하여 a에서 z까지 알파벳 순회

<p>알파벳 순회에 관해 질문이 있습니다. "a"에서 시작하고 "z"에서 끝나는 루프를 원합니다. 그런 다음 루프는 "aa"에서 시작하여 "az"까지 계산됩니다. 그런 다음 "ba"에서 시작하여 "bz"로 이동하는 식으로 진행됩니다...</p> <p>해결책 아시는 분 계신가요? </p> <h2>감사합니다</h2> <p>편집: 잊어버렸습니다. 함수에 문자 "a"를 지정한 다음 함수는 "b"를 반환해야 합니다. "bnc"가 제공되면 함수는 "bnd"를 반환해야 합니다. </p>
P粉982881583P粉982881583445일 전490

모든 응답(2)나는 대답할 것이다

  • P粉764836448

    P粉7648364482023-08-24 00:42:38

    먼저 시도해 보세요. a-z를 사용한 다음 aa-zz를 사용하세요

    으아아아

    'zz'에서 중지된다는 점에 유의하세요. 물론 루프에는 몇 가지 추악한 반복이 있습니다. 운 좋게도 이 문제는 쉽게 해결할 수 있으며 훨씬 더 유연할 수 있습니다.

    두 번째 시도: 더욱 유연한 알파벳

    으아아아

    이제 a, b, c, d, aa, ab, ac, ad, ba 등을 생성하고 싶다면 GetExcelColumns("abcd")에 전화하세요.

    세 번째 시도(추가 수정) - 무한 시퀀스

    으아아아

    재귀를 사용하면 코드가 더 깔끔해지겠지만 그만큼 효율적이지는 않을 것입니다.

    특정 지점에서 멈추고 싶다면 LINQ를 사용할 수 있습니다.

    으아아아

    "다시 시작" 반복자

    주어진 지점에서 반복자를 다시 시작하려면 소프트웨어jedi가 제안한 대로 SkipWhile를 사용할 수 있습니다. 물론 이는 상당히 비효율적이다. 호출 사이에 상태를 유지할 수 있으면 반복자를 유지할 수 있습니다(두 솔루션 모두):

    으아아아

    또는 실제로 사용할 수 있는 첫 번째 값이 발견되면 중단하는 foreach 코드를 구조화할 수도 있습니다.

    회신하다
    0
  • P粉920485285

    P粉9204852852023-08-24 00:23:16

    EDIT: 원본 게시물의 최신 편집 내용과 똑같이 만드세요

    가장 간단한 솔루션이며 테스트를 거쳤습니다.

    으아악

    회신하다
    0
  • 취소회신하다