C# 循环最后一项的可观察集合

C# 循环最后一项的可观察集合,c#,.net,C#,.net,上面的代码将从一开始就循环observable类中的项。我想从最后一项循环此对象 ex 9,8,7,6,5,4,3,2,1,0代替1,2,3,4,5,6,7,8,9。。。 请给我一个在c#中执行此操作的解决方案,您可以使用observablecollection并执行循环 foreach(var item in myObservalbleCollection) { //samoe coding } var myObservalbleCollection=新的observeCollect

上面的代码将从一开始就循环observable类中的项。我想从最后一项循环此对象

ex 9,8,7,6,5,4,3,2,1,0代替1,2,3,4,5,6,7,8,9。。。 请给我一个在c#

中执行此操作的解决方案,您可以使用observablecollection并执行循环

foreach(var item in myObservalbleCollection)
{
    //samoe coding
}
var myObservalbleCollection=新的observeCollection(collection.Reverse());
foreach(myObservalbleCollection中的var项)
{
//一些编码
}
您可以创建observablecollection并执行循环

foreach(var item in myObservalbleCollection)
{
    //samoe coding
}
var myObservalbleCollection=新的observeCollection(collection.Reverse());
foreach(myObservalbleCollection中的var项)
{
//一些编码
}

您可以使用
for
循环,而不是使用
foreach
从收集结束到开始运行:

var myObservalbleCollection = new ObservableCollection<YourType>(collection.Reverse());    
foreach(var item in myObservalbleCollection)
{
    //some coding
}
这是可能的,因为
ObservableCollection
实现
IList
,它提供集合中元素的计数和对这些元素的索引访问,以及
foreach
使用的
IEnumerable
提供的正向迭代。这是最有效的解决方案

您还可以使用LINQ
Reverse
,它可用于实现
IEnumerable
的任何集合:


这实际上会将集合中的所有元素复制到一个新数组中,然后以相反的顺序进行迭代。虽然效率低于第一个解决方案,但在大多数情况下,这并不重要。

您可以使用
for
循环,从收集结束到开始运行:

var myObservalbleCollection = new ObservableCollection<YourType>(collection.Reverse());    
foreach(var item in myObservalbleCollection)
{
    //some coding
}
这是可能的,因为
ObservableCollection
实现
IList
,它提供集合中元素的计数和对这些元素的索引访问,以及
foreach
使用的
IEnumerable
提供的正向迭代。这是最有效的解决方案

您还可以使用LINQ
Reverse
,它可用于实现
IEnumerable
的任何集合:


这实际上会将集合中的所有元素复制到一个新数组中,然后以相反的顺序进行迭代。虽然效率低于第一个解决方案,但在大多数情况下,这并不重要。

foreach(myObservalbleCollection.Reverse()中的var项)
在循环过程中,是否希望集合发生更改?
foreach(myObservalbleCollection.Reverse()中的var项)
在循环浏览时,您是否希望收藏发生变化?