我知道标题令人困惑所以我会尽力在这里解释......
我有
class T{
int id;
string value;
}
List<T> objs;
在我的代码中,当我检索初始列表时,我使用
获取第一个idint currentID = objs.FirstOrDefault().id;
现在我需要抓住下一个。不知道我在哪里的当前位置如何才能抓住下一个项目ID ...
objs.select(x => x.id)
.where(//you are the object that exists after the one with currentID);
答案 0 :(得分:4)
如果你想在某个元素之后获取下一个元素,那么你可以使用SkipWhile()
和Skip()
这样的方法:
objs.SkipWhile(x => x.id == currentID).Skip(1).FirstOrDefault();
答案 1 :(得分:0)
您只是编制索引,因此请使用ElementAt
:
int i = 0; //current position
int currentID = objs.ElementAt(i).id;
i++;
在循环中执行以获取下一个等等。
如果您实际上只想迭代所有元素,只需使用foreach
:
foreach (T obj in objs)
{
int currentID = obj.id;
}
最后,您可以使用GetEnumerator
并将MoveNext
函数与Current
属性一起使用。这基本上是使用foreach
但是自己控制迭代。