我有一个IEnumerable对象.我想基于索引访问例如:
for(i=0; i<=Model.Products; i++)
{
???
}
Run Code Online (Sandbox Code Playgroud)
这可能吗?
Pav*_*aev 111
首先,你确定它真的IEnumerator不是IEnumerable吗?我强烈怀疑它实际上是后者.
此外,问题并不完全清楚.你有一个索引,并且你想在该索引处获得一个对象吗?如果是这样,如果你确实有IEnumerable(不IEnumerator),你可以这样做:
using System.Linq;
...
var product = Model.Products.ElementAt(i);
Run Code Online (Sandbox Code Playgroud)
如果你想枚举整个集合,但也希望每个元素都有一个索引,那么VA或者Nestor的答案就是你想要的.
Nes*_*tor 26
IEnumerator中没有索引.使用
foreach(var item in Model.Products)
{
...item...
}
Run Code Online (Sandbox Code Playgroud)
你可以根据需要制作自己的索引:
int i=0;
foreach(var item in Model.Products)
{
... item...
i++;
}
Run Code Online (Sandbox Code Playgroud)
Gra*_*ton 21
var myProducts = Models.Products.ToList();
for(i=0; i< myProducts.Count ; i++)
{
//myProducts[i];
}
Run Code Online (Sandbox Code Playgroud)
小智 9
foreach(var indexedProduct in Model.Products.Select((p, i)=> new {Product = p, Index = i})
{
...
...indexedProduct.Product...
...indexProduct.Index ...//this is what you need.
...
}
Run Code Online (Sandbox Code Playgroud)