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

Can I randomize the sequence of items in an ObservableCollection?

我有一个带有对象的 ObservableCollection。我想随机化集合的顺序。我该怎么做?

您可以使用扩展方法来做到这一点。您可以将此 class 添加到您的项目中,以提供集合的扩展方法。这是一个简单的洗牌。

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()