CSV파일을 윈폰에서 읽을때 첫줄을 Skip 하고 싶을때 사용한다.
csv 첫줄에는 대부분 데이터들의 컬럼값 즉 메뉴 이름같은것이 들어가기때문에
첫줄을 제외한 나머지 데이터를 뽑을때 유용한다. 혹은 마지막데이터를 끊거나
풀 소스
/// <summary> /// csv 파일을 읽을때 처음 한줄을 Skip 할때 사용 /// foreach문등에서 처음 인덱스와 끝의 인덱스를 감지 한다. /// </summary> public static class SkipData { public class SkipFirst<T> : IEnumerable<T> { private IEnumerable<T> mEnum; public SkipFirst(IEnumerable<T> enm) { mEnum = enm; } #region IEnumerable<T> Members public IEnumerator<T> GetEnumerator() { IEnumerator<T> iter = mEnum.GetEnumerator(); if (iter.MoveNext()) { while (iter.MoveNext()) { yield return iter.Current; } } } #endregion IEnumerable<T> Members #region IEnumerable Members System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return GetEnumerator(); } #endregion IEnumerable Members } public class SkipLast<T> : IEnumerable<T> { private IEnumerable<T> mEnum; public SkipLast(IEnumerable<T> enm) { mEnum = enm; } #region IEnumerable<T> Members public IEnumerator<T> GetEnumerator() { IEnumerator<T> iter = mEnum.GetEnumerator(); if (iter.MoveNext()) { T curr = iter.Current; while (iter.MoveNext()) { yield return curr; curr = iter.Current; } } } #endregion IEnumerable<T> Members #region IEnumerable Members System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return GetEnumerator(); } #endregion IEnumerable Members } static public SkipFirst<T> First<T>(IEnumerable<T> enm) { return new SkipFirst<T>(enm); } static public SkipLast<T> Last<T>(IEnumerable<T> enm) { return new SkipLast<T>(enm); } }
참고 : http://honestillusion.com/blogs/blog_0/archive/2007/02/05/c-code-adding-skip-first-to-foreach.aspx
참고로 사용은 이렇게 한다.
foreach (var item in SkipData.First(StationsSplitData))
'Windows Phone 7' 카테고리의 다른 글
[wp7] 하위 UserControl의 Parent(부모) 컨트롤 메소드 호출 하기 (0) | 2011.11.21 |
---|---|
[wp7] 윈폰에서 CSV 처리 (0) | 2011.11.16 |
[wp7] WCF Rest 에서 Cookie값 받아오기(WCF Login Server Session) (1) | 2011.11.11 |
[wp7] EUC-KR을 윈폰7에서 사용하기 (5) | 2011.11.08 |
[WP7] Toast Notification 만드는법 4 (Mango Ver) (0) | 2011.05.27 |