标签: smart-playlist

随机播放列表算法

我需要以随机顺序从一个范围(例如从x到y)创建一个数字列表,这样每个订单都有相同的机会.

对于我用C#编写的音乐播放器,我需要这个,以随机顺序创建播放列表.

有任何想法吗?

谢谢.

编辑:我对更改原始列表不感兴趣,只需从随机顺序中的某个范围中获取随机索引,以便每个订单都有相同的机会.

这是我到目前为止所写的内容:

    public static IEnumerable<int> RandomIndexes(int count)
    {
        if (count > 0)
        {
            int[] indexes = new int[count];
            int indexesCountMinus1 = count - 1;

            for (int i = 0; i < count; i++)
            {
                indexes[i] = i;
            }

            Random random = new Random();

            while (indexesCountMinus1 > 0)
            {
                int currIndex = random.Next(0, indexesCountMinus1 + 1);
                yield return indexes[currIndex];

                indexes[currIndex] = indexes[indexesCountMinus1];
                indexesCountMinus1--;
            }

            yield return indexes[0];
        }
    }
Run Code Online (Sandbox Code Playgroud)

它正在工作,但唯一的问题是我需要在内存中分配一个大小为的数组count.我正在寻找不需要内存分配的东西.

谢谢.

c# algorithm smart-playlist playlist

13
推荐指数
3
解决办法
6244
查看次数

Visual Studio 中是否有单元测试的“动态播放列表”?

在 Visual Studio 中使用单元测试时,可以编译对测试进行分组的播放列表。例如,当开发一个新功能时,我们只想运行相关测试而不是所有现有测试,这很有用。

然而,在我看来,播放列表只能通过显式添加/删除单元测试来“手动”维护。

这总比没有好,但如果我能根据某些标准(例如功能、测试持续时间等)“标记”我的单元测试并动态生成播放列表,那就太好了。

有没有办法使用默认测试框架在 Visual Studio 中执行类似的操作?

c# unit-testing smart-playlist playlist visual-studio

9
推荐指数
1
解决办法
2413
查看次数