6

这应该很容易,我很惭愧我自己还没有弄清楚。我正在尝试颠倒我的 wp7 应用程序中项目列表的顺序。该列表是一个 ObservableCollection。使用 system.linq 时,智能感知让我这样做:myList.Reverse(); ,但这似乎不起作用。我做错了什么,还是有其他方法可以轻松做到这一点?

提前致谢。

4

3 回答 3

33

反向返回一个 IEnumerable,它不修改集合。要修改你可以做的集合

collection = new ObservableCollection<YourType>(collection.Reverse());
于 2012-07-10T23:05:39.800 回答
4

如果您不想重新创建集合:

for (int i = 0; i < collection.Count; i++)
  collection.Move(collection.Count - 1, i);
于 2015-03-07T20:36:17.170 回答
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
于 2012-07-10T22:31:41.320 回答