我有一个包含 20-50 个项目的列表框。所有项目必须按唯一 ID 排序。应用排序后,我的列表框在顶部滚动。如何防止这种情况?排序功能
public static void Sort<TSource, TValue>(IList<TSource> source, Func<TSource, TValue> selector) {
for (int i = source.Count - 1; i >= 0; i--) {
for (int j = 1; j <= i; j++) {
TSource o1 = source.ElementAt(j - 1);
TSource o2 = source.ElementAt(j);
TValue x = selector(o1);
TValue y = selector(o2);
var comparer = Comparer<TValue>.Default;
if (comparer.Compare(x, y) > 0) {
source.Remove(o1);
source.Insert(j, o1);
}
}
}
}