코레일을 하다가 index값을 구해야 하는 경우가 생겼다.
하지만 Linq에서 where 문을 이용해서 firstOrDefault()를 이용해서 값을 얻어 왔지만 그 값이 List의 몇번째 값인지는
알수 없었다. 다른데서는 지원되는데 윈폰7의 compact .net framework에서는 제공되지 않는것인가? ㅠㅠ
그래서 여러가지 방법중 좋은 방법을 찾았다.
그 방법은 바로..두구두구두구..
그냥 직접 제작하는것이다 하하하
일단 구현한 클래스는 이렇다.
using System; using System.Collections.Generic; namespace GloryApp.Utils { public static class IEnumerableExtensions { public static int IndexWhere<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate) { var enumerator = source.GetEnumerator(); int index = 0; while (enumerator.MoveNext()) { TSource obj = enumerator.Current; if (predicate(obj)) return index; index++; } return -1; } public static int IndexWhere<TSource>(this IEnumerable<TSource> source, Func<TSource, int, bool> predicate) { var enumerator = source.GetEnumerator(); int index = 0; while (enumerator.MoveNext()) { TSource obj = enumerator.Current; if (predicate(obj, index)) return index; index++; } return -1; } } }
그리고 위의 프레임워크를 사용할 클래스에 using 하면
var temp = siList.IndexWhere(c => c.h_srcar_no == currenSrcarNo);
이런식으로 얻어 올수 있다.
'Windows Phone 7' 카테고리의 다른 글
[wp7] 윈폰7에선 TextboxChanged 이벤트가 2번 들어온다? (0) | 2012.02.03 |
---|---|
[wp7] PasswordBox 에 대한 고찰…(PasswordBox에서 Inputscope) (0) | 2012.02.03 |
[wp7] Linq에서 StackPanel 의 Children에 있는 Item 비교하기 (Casting) (0) | 2012.01.30 |
[wp7] Navigate 페이지간 이동시 데이터 전송하는 여러가지 방법 (0) | 2012.01.26 |
[wp7] Model Class의 Properties 를 얻어와서 소스 최적화 및 코드를 줄여보자. (0) | 2012.01.19 |