dev: Using built in rng.Shuffle, using some new .net types, removed some transactions

This commit is contained in:
Kwoth
2024-05-13 17:14:35 +00:00
parent 9406a9cc34
commit 15f629ec53
11 changed files with 56 additions and 83 deletions

View File

@@ -267,20 +267,8 @@ public sealed partial class MusicQueue : IMusicQueue
{
lock (_locker)
{
var list = tracks.ToList();
for (var i = 0; i < list.Count; i++)
{
var struck = rng.Next(i, list.Count);
(list[struck], list[i]) = (list[i], list[struck]);
// could preserving the index during shuffling be done better?
if (i == index)
index = struck;
else if (struck == index)
index = i;
}
var list = tracks.ToArray();
rng.Shuffle(list);
tracks = new(list);
}
}