这应该很容易,我很惭愧我自己还没有弄清楚。我正在尝试颠倒我的 wp7 应用程序中项目列表的顺序。该列表是一个 ObservableCollection。使用 system.linq 时,智能感知让我这样做:myList.Reverse(); ,但这似乎不起作用。我做错了什么,还是有其他方法可以轻松做到这一点?
提前致谢。
这应该很容易,我很惭愧我自己还没有弄清楚。我正在尝试颠倒我的 wp7 应用程序中项目列表的顺序。该列表是一个 ObservableCollection。使用 system.linq 时,智能感知让我这样做:myList.Reverse(); ,但这似乎不起作用。我做错了什么,还是有其他方法可以轻松做到这一点?
提前致谢。
反向返回一个 IEnumerable,它不修改集合。要修改你可以做的集合
collection = new ObservableCollection<YourType>(collection.Reverse());
如果您不想重新创建集合:
for (int i = 0; i < collection.Count; i++)
collection.Move(collection.Count - 1, i);
创建一个继承 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