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

时间:2016-06-30 11:40:00

标签: observablecollection observable

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

1 个答案:

答案 0 :(得分:1)

您可以使用扩展方法来执行此操作。您可以将此类添加到项目中,以便为集合提供扩展方法。这是一个简单的洗牌。

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