foreach(var item in myObservalbleCollection)
{
//samoe coding
}
上面的代码将从头开始循环observable类中的项。我想从最后一个Item
循环这个对象ex 9,8,7,6,5,4,3,2,1,0而不是1,2,3,4,5,6,7,8,9 ...... 请给我一个解决方案,在c#
中执行此操作答案 0 :(得分:3)
您可以使用从集合末尾到开头运行的foreach
循环,而不是使用for
:
for (var i = myObservableCollection.Count - 1; i >= 0; i -= 1) {
var item = myObservableCollection[i];
// Process item
}
这是可能的,因为ObservableCollection<T>
实现了IList<T>
,它提供了集合中元素的计数和对这些元素的索引访问,以及由IEnumerable<T>
提供的前向测试。 foreach
。这是最有效的解决方案。
您还可以使用LINQ Reverse
,它可用于实现IEnumerable<T>
的任何集合:
foreach (var item in myObservableCollection.Reverse()) {
// Process item
}
这将实际上将集合中的所有元素复制到新数组中,然后以相反的顺序迭代它们。虽然效率低于第一种解决方案,但在大多数情况下并不重要。
答案 1 :(得分:2)
您可以reverse
observablecollection并执行循环
var myObservalbleCollection = new ObservableCollection<YourType>(collection.Reverse());
foreach(var item in myObservalbleCollection)
{
//some coding
}