C# 为音乐播放器项目制作播放次数最多的部分(数组排序并将数组传递给列表)

蓝染

我正在尝试用 C# 制作音乐播放器程序。我目前做的项目是供个人使用,不会公开发布。向你们展示我到目前为止所做的事情是:

用户界面: 在此处输入图片说明

这是程序的用户界面,左侧有两个按钮我的音乐和收藏夹(应该是播放次数最多的歌曲)。我需要帮助的是将列表项从最大到最小排序,这意味着所有这些项中播放次数最多的必须在列表中(存储在 txt 文件中的数据,已尝试部分中提供的信息)我不知道如何用列表来做到这一点。忽略右下角的windows media player控件,我用它来播放音乐文件并在程序启动时隐藏。

我有一个包含不同歌曲的列表框控件,每次从列表中单击一个项目时,所选项目都会播放。我目前将每首歌曲的数据保存在一个 .txt 文件中。此外,当单击“收藏夹”按钮时,程序会清除当前列表(它不会打开新表单)并添加文件夹中的数据(如果该歌曲之前从未播放过,则不会生成 .txt 文件,因此它不会添加)。我设法列出了列表中播放次数最多的歌曲。所以我为每首歌曲都有一个 .txt 文件,其中包含歌曲在第一行播放的次数。

除此之外,我尝试制作一个 2D 字符串数组,它有 2 列,歌曲名称在前,播放次数在后。我尝试对数组进行排序,但是当我尝试将数组项添加到列表中时,结果未排序。

//This is my sort class:

string[,] _sortArray;
int[] _tagArray;
int _sortIndex;

protected string[,] SortArray { get { return _sortArray; } }

public ArraySort(string[,] theArray, int sortIndex)
{
    _sortArray = theArray;
    _tagArray = new int[_sortArray.GetLength(0)];
    for (int i = 0; i < _sortArray.GetLength(0); ++i) _tagArray[i] = i;
    _sortIndex = sortIndex;
}

public string[,] ToSortedArray()
{
    Array.Sort(_tagArray, this);
    string[,] result = new string[
    _sortArray.GetLength(0), _sortArray.GetLength(1)];
    for (int i = 0; i < _sortArray.GetLength(0); i++)
    {
        for (int j = 0; j < _sortArray.GetLength(1); j++)
        {
            result[i, j] = _sortArray[_tagArray[i], j];
        }
    }
    return result;
}

public virtual int Compare(int x, int y)
{
        if (_sortIndex < 0) return 0;
        return CompareStrings(x, y, _sortIndex);
}

protected int CompareStrings(int x, int y, int col)
{
        return _sortArray[x, col].CompareTo(_sortArray[y, col]);
}

//Calling the method from the main program and storing the array data to the 
//list
ArraySort comparer = new ArraySort(array, 1);
string[,] sortedData = comparer.ToSortedArray();
for (i = 0; i < sortedData.GetLength(0); i++)
{
    listSongs.Items.Add(sortedData[i,0]);
}

我希望数组项从最大到最小排序,但情况似乎并非如此,因为列表是随机排序的。

Abion47

不要使用二维数组。创建一个类来保存数据并创建一个数组:

class SongPlayData {
    string SongName;
    int PlayCount;
}

// ...

SongPlayData[] playData = // your song data here

然后你可以像这样对数组进行排序:

SongPlayData[] ToSortedArray() {
    var sortedData = SongPlayData[playData.length];
    Array.Copy(playData, sortedData, 0);
    Array.Sort(sortedData, (a, b) => a.PlayCount.CompareTo(b.PlayCount));
    return sortedData;
}

这是强制性的 LINQ 版本:

SongPlayData[] ToSortedArray() {
    return playData.OrderBy(d => d.PlayCount).ToArray();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用C ++ / GTK制作音乐播放器

来自分类Dev

如何在 C# 中制作媒体播放器列表并随机化它们

来自分类Dev

C#:获取列表中出现次数最多的元素?

来自分类Dev

如何在C#\ NAudio音乐播放器中创建搜索栏?

来自分类Dev

Visual C# 声音播放器

来自分类Dev

使用VLC播放器或WMP在c#Windows应用程序中从内存流或字节数组播放视频

来自分类Dev

按字母顺序对音乐播放器的播放列表进行排序(Android Studio)

来自分类Dev

如何延迟为Unity C#中的播放器添加更多生命值?

来自分类Dev

音乐播放器无法播放选择的项目

来自分类Dev

音乐播放器无法播放选择的项目

来自分类Dev

检查哪个对象在列表中出现次数最多 C#

来自分类Dev

如何在C ++中使用SFML播放器

来自分类Dev

C#LibVLCSharp播放器直接馈送媒体

来自分类Dev

C ++中的SFML播放器运动帮助

来自分类Dev

播放器未显示在[C ++ / SFML]的窗口中

来自分类Dev

由参数C ++ SDL实例化的播放器类

来自分类Dev

在SDL_Rect C ++中移动播放器

来自分类Dev

C#错误中的播放器爬升代码

来自分类Dev

X 轴上的 C# 相机跟随播放器

来自分类Dev

带数组的C#随机播放

来自分类Dev

如何在使用C#开发的android中获取我的音乐播放器的MP3文件信息

来自分类Dev

C ++-将数组返回主函数并将数组传递给另一个函数

来自分类Dev

如何找到出现次数最多的字母?C ++

来自分类Dev

在python中为广告播放器制作播放列表

来自分类Dev

C ++基础知识:基于范围的for循环并将C样式的数组传递给函数

来自分类Dev

如何为DLNA播放器制作播放列表?

来自分类Dev

使用NSTimer iOS Objective C暂停/播放音频播放器

来自分类Dev

如何使用C#单击YouTube播放器的播放速度

来自分类Dev

android音乐播放器项目中的前进,后退按钮

Related 相关文章

  1. 1

    用C ++ / GTK制作音乐播放器

  2. 2

    如何在 C# 中制作媒体播放器列表并随机化它们

  3. 3

    C#:获取列表中出现次数最多的元素?

  4. 4

    如何在C#\ NAudio音乐播放器中创建搜索栏?

  5. 5

    Visual C# 声音播放器

  6. 6

    使用VLC播放器或WMP在c#Windows应用程序中从内存流或字节数组播放视频

  7. 7

    按字母顺序对音乐播放器的播放列表进行排序(Android Studio)

  8. 8

    如何延迟为Unity C#中的播放器添加更多生命值?

  9. 9

    音乐播放器无法播放选择的项目

  10. 10

    音乐播放器无法播放选择的项目

  11. 11

    检查哪个对象在列表中出现次数最多 C#

  12. 12

    如何在C ++中使用SFML播放器

  13. 13

    C#LibVLCSharp播放器直接馈送媒体

  14. 14

    C ++中的SFML播放器运动帮助

  15. 15

    播放器未显示在[C ++ / SFML]的窗口中

  16. 16

    由参数C ++ SDL实例化的播放器类

  17. 17

    在SDL_Rect C ++中移动播放器

  18. 18

    C#错误中的播放器爬升代码

  19. 19

    X 轴上的 C# 相机跟随播放器

  20. 20

    带数组的C#随机播放

  21. 21

    如何在使用C#开发的android中获取我的音乐播放器的MP3文件信息

  22. 22

    C ++-将数组返回主函数并将数组传递给另一个函数

  23. 23

    如何找到出现次数最多的字母?C ++

  24. 24

    在python中为广告播放器制作播放列表

  25. 25

    C ++基础知识:基于范围的for循环并将C样式的数组传递给函数

  26. 26

    如何为DLNA播放器制作播放列表?

  27. 27

    使用NSTimer iOS Objective C暂停/播放音频播放器

  28. 28

    如何使用C#单击YouTube播放器的播放速度

  29. 29

    android音乐播放器项目中的前进,后退按钮

热门标签

归档