나는 단순히 INT의 순서에서 모든 3S를 제거하려면 다음 코드의 결과를 찾을 조금 놀랐어요 :LINQ - 건너 뛰시겠습니까?
var sequence = new [] { 1, 1, 2, 3 };
var result = sequence.SkipWhile(i => i == 3); // Oh noes! Returns { 1, 1, 2, 3 }
왜 3가 생략되지 않는 이유는 무엇입니까?
나의 다음 생각은 OK, 연산자를 제외하고는 트릭을 할 것이었다 : 요약
var sequence = new [] { 1, 1, 2, 3 };
var result = sequence.Except(i => i == 3); // Oh noes! Returns { 1, 2 }
, 3 제거를 제외하고
- 을뿐만 아니라 가 아닌 별개의 요소를 제거합니다. Grr.
- 조건과 일치하는 경우에도 SkipWhile은 마지막 요소를 건너 뜁니다. Grr.
SkipWhile이 마지막 요소를 건너 뛰지 않는 이유를 설명 할 수 있습니까? 그리고 누구든지 위의 시퀀스에서 '3'을 제거하는 데 사용할 수있는 LINQ 연산자를 제안 할 수 있습니까?
SkipWhile (true)로 생각하십시오. 그래서, 첫 번째 조건 (i == 3)이 실패합니다. 그래서 SkipWhile (false)가되어 다음에 어떻게 될까요? 그것은 남은 모든 요소를 반환합니다! –