■ IEnumerator<T> 인터페이스의 Current 속성/MoveNext 메소드를 사용해 마지막 값을 제외한 열거 가능형을 구하는 방법을 보여준다.
▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
#region 마지막 값을 제외한 열거 가능형 구하기 - SkipLast<TElement>(sourceEnumerable, lastSkipCount) /// <summary> /// 마지막 값을 제외한 열거 가능형 구하기 /// </summary> /// <typeparam name="TElement">요소 타입</typeparam> /// <param name="sourceEnumerable">소스 열거 가능형</param> /// <param name="lastSkipCount">제외 마지막 항목 수</param> /// <returns>마지막 값을 제외한 열거 가능형</returns> public IEnumerable<TElement> SkipLast<TElement>(IEnumerable<TElement> sourceEnumerable, int lastSkipCount) { IEnumerator<TElement> enumerator = sourceEnumerable.GetEnumerator(); Queue<TElement> queue = new Queue<TElement>(lastSkipCount + 1); while(true) { if(!enumerator.MoveNext()) { break; } queue.Enqueue(enumerator.Current); if(queue.Count > lastSkipCount) { yield return queue.Dequeue(); } } } #endregion |