如何在使用linq查询时获取int数组的索引

时间:2012-02-05 14:18:02

标签: c# asp.net-mvc linq

我想在MVC中创建一个具有特定数字的下拉列表

所以在我的模型中我有一个属性:

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

在我的控制器中,我实例化我的模型:

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

numbers是一个包含10个数字的int数组。

此代码有效,但问题是我无法从's'获取数组的值(索引)。

有谁知道我怎么能得到这个价值?

2 个答案:

答案 0 :(得分:3)

LINQ表达式无法做到这一点。您可以使用以下内容:

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

答案 1 :(得分:0)

您可以使用方法语法而不是查询语法:

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