2011-01-19 7 views
0

Linq Get items higher then lastname에서 나는 사람을 특정 이름보다 높이게하는 법을 물었다.리스트에서 위치를 찾는 것,

그러나 우리는 페이징이 포함 된 데이터 그리드를 사용하고 성이 높은 성을 보여주는 경우 "AA"로 시작하는 사람들에게 돌아갈 방법이 없습니다.

그래서 나는 정상적인 선택 순서를 따른다면 어떤 위치에 있었는지 알아낼 방법을 찾고 있었습니까?

희망이

[편집] 쿼리 유형이 EntityQuery이다 의미 : 있습니다.

답변

1

그래서 조건에 맞는 1 인칭 레코드의 색인을 원하십니까?

var index = query.TakeWhile(person => person.LastName.CompareTo(name) < 0).Count(); 

이는 상태와 반환 값이 조건에 일치하지 않는 첫 번째 요소의 인덱스와 일치하는 요소의 수를 계산합니다.

이 경우 TakeWhile()은 원하지 않는 항목을 가져 오는 데 사용되므로 Where()와 함께 사용했던 조건을 부정해야합니다.

+0

에 주어진 예를 사용하여이 문제를 해결하기 위해 관리합니다. 네임 스페이스가 누락 되었습니까? 잘하면 다른 방법을 제공 할 수 있습니다. –

+0

EntityQuery를 사용 해 본 적이 없으며 매우 제한된 쿼리 작업이있는 것으로 보입니다. ToList()를 사용하여 목록으로 변환 한 다음 TakeWhile() 메서드를 사용할 수 있습니까? – mgronber

+0

아니요, 목록으로 변환하면 먼저 데이터베이스에서 모든 레코드를 가져와야합니다. entityQuery를 사용하면 데이터베이스에서 가져온 레코드의 양을 제한 할 수 있으므로 전송되는 데이터의 양을 제한 할 수 있습니다. –

관련 문제