使用linq </objecttype>反转ObservableCollection <objecttype>

时间:2012-07-10 22:16:22

标签: c# linq windows-phone-7 observablecollection reverse

这个应该很容易,我很惭愧我还没弄明白。 我试图扭转我的wp7应用程序中的项目列表的顺序。该列表是一个ObservableCollection。 使用system.linq时,intellisense让我这样做:myList.Reverse(); ,但这似乎不起作用。我做错了什么,还是有其他方法我可以轻松地做到这一点?

提前致谢。

3 个答案:

答案 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