observablecollection - 我可以随机化 ObservableCollection 中的项目序列吗?

标签 observablecollection observable

我有一个包含对象的 ObservableCollection。我想随机化集合的顺序。我怎样才能做到这一点?

最佳答案

您可以使用扩展方法来做到这一点。您可以将此类添加到您的项目中以提供集合的扩展方法。这是一个简单的随机播放。

public static class ShuffleExtension
{
    public static void Shuffle<T>(this IList<T> list)
    {
        Random rng = new Random();
        int n = list.Count;
        while (n > 1)
        {
            n--;
            int k = rng.Next(n + 1);
            T value = list[k];
            list[k] = list[n];
            list[n] = value;
        }
    }
}

要使用,请调用 yourcollection.Shuffle()

关于observablecollection - 我可以随机化 ObservableCollection 中的项目序列吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38122046/

相关文章:

c# - 我想将 SDF 数据库的数据集转换为 WPF 中的可观察集合

c# - LogicalTreeHelper.GetChildren - ObservableCollection Move() 导致 DataTemplate 中的 ContentControl 丢失其内容?

c# - ReadOnlyObservableCollection 和 ObservableCollection 之间的区别

java - 是否可以在不可修改的 ObservableSet 上注册 SetChangeListener?

c# - ObservableCollection 数据绑定(bind)性能

java - FilteredList 在更新时给出 java.lang.ArrayIndexOutOfBoundsException

javascript - 没有 RxJS 的异步流控制

angular - Angular 项目中使用 rxjs 的 Http 轮询和条件逻辑

angular - rxJs & angular 4 & restangular : stack errorInterceptors

javascript - 将事件中的 Rx.Observable 与 pausable 一起使用不会运行订阅功能