2012-02-05 6 views
2

를 사용할 때 내가 속성이 MVCLINQ 쿼리

내 모델 그래서

특정 번호와 드롭 다운리스트를 만들 int 배열의 인덱스를 얻는 방법 : 내 컨트롤러에서

public IEnumerable<SelectListItem> Quantities { get; set; } 

를 내가 내 모델을 인스턴스화하십시오 :

Quantities = from s in numbers 
      select new SelectListItem { Text = s.ToString()} 

numbers는 10 개의 숫자가있는 int 배열입니다.

이 코드는 작동하지만 문제는 's'에서 배열의 값 (색인)을 가져올 수 없다는 것입니다.

아무도 내가이 값을 얻을 수있는 방법을 알고 있습니까?

답변

3

LINQ 표현식에서는 사용할 수 없습니다. 다음을 사용할 수

Quantities = numbers.Select((s, index) => new SelectListItem 
{ 
    Value = index.ToString(), 
    Text = s.ToString() 
); 
+0

감사합니다! 그것은 정말로 완벽하게 작동합니다. 나는 그 사실을 이해하지 못한다. 예를 들어 .select (Func selector)에 대한 인수는 ... 그 코드가 잘 작동하지만 더 재미있을 때 유용하다. :) – Wartodust

+0

@wartodust, 2 개의 인수가있다. 익명 메소드는 다음을 취합니다. 첫 번째 요소는 현재 요소이고 두 번째 요소는 인덱스를 나타내는 정수입니다. –

+0

와우. 이것은 잘 숨겨진 LINQ 기능입니다! – Larry

0

대신 쿼리 구문의 방법 구문을 사용할 수 있습니다 :

var quantities = numbers.Select((x,i) => {...});