循环从最后一项开始的可观察集合
本文关键字:开始 观察 集合 一项 最后 循环 | 更新日期: 2023-09-27 18:26:18
foreach(var item in myObservalbleCollection)
{
//samoe coding
}
上面的代码将从一开始就循环可观察类中的项目。我想从最后一个项目循环这个对象
例如 9,8,7,6,5,4,3,2,1,0 而不是 1,2,3,4,5,6,7,8,9...请给我一个在 c# 中执行此操作的解决方案
您可以使用从集合末尾到开头运行的 for
循环,而不是使用 foreach
:
for (var i = myObservableCollection.Count - 1; i >= 0; i -= 1) {
var item = myObservableCollection[i];
// Process item
}
这是可能的,因为ObservableCollection<T>
实现IList<T>
,除了foreach
使用的IEnumerable<T>
提供的正向访问之外,它还提供集合中元素的计数和对这些元素的索引访问。这是最有效的解决方案。
您还可以使用 LINQ Reverse
,它可用于任何集合实现IEnumerable<T>
:
foreach (var item in myObservableCollection.Reverse()) {
// Process item
}
这实际上会将集合中的所有元素复制到新数组,然后再以相反的顺序迭代它们。虽然效率低于第一种解决方案,但在大多数情况下无关紧要。
您可以reverse
可观察集合并执行循环
var myObservalbleCollection = new ObservableCollection<YourType>(collection.Reverse());
foreach(var item in myObservalbleCollection)
{
//some coding
}