这个应该很容易,我很惭愧我还没弄明白。 我试图扭转我的wp7应用程序中的项目列表的顺序。该列表是一个ObservableCollection。 使用system.linq时,intellisense让我这样做:myList.Reverse(); ,但这似乎不起作用。我做错了什么,还是有其他方法我可以轻松地做到这一点?
提前致谢。
答案 0 :(得分:28)
Reverse返回IEnumerable,它不会修改集合。要修改你可以做的收藏
collection = new ObservableCollection<YourType>(collection.Reverse());
答案 1 :(得分:3)
如果您不想重新创建该集合:
for (int i = 0; i < collection.Count; i++)
collection.Move(collection.Count - 1, i);
答案 2 :(得分:0)
创建一个继承observablecollection(of T)并在其中实现排序对象的类。这是一种vb.net蛮力的方式:
Public Sub Sort(ByVal comparer As IComparer(Of T))
Dim j As Integer
Dim index As T
For i As Integer = 1 To Count - 1
index = Me(i)
j = i
While (j > 0) AndAlso (comparer.Compare(Me(j - 1), index) = 1)
Me(j) = Me(j - 1)
j = j - 1
End While
Me(j) = index
Next
End Sub