C# List集合排序的简单应用

举个例子,有如下数据,其中”screenSize”的代表视频的分辨率,但其值不是固定的。

{
  "code": "A00000",
  "timestamp": "20190816221306",
  "data": {
    "fsc": 7,
    "vidl": [
      {
        "m3u": "https://www.guihet.com/480.m3u8",
        "screenSize": "896x480",
      },
      {
        "m3u": "https://www.guihet.com/720.m3u8",
        "screenSize": "1280x720",
      },
      {
       "m3u": "https://www.guihet.com/216.m3u8",
        "screenSize": "384x216",
      }
    ],
    "isdol": false
  }}

我的目标是得如下格式的地址,按照视频分辨率降序排列,这样方便播放器统一的多源处理。
https://www.guihet.com/720.m3u8#https://www.guihet.com/480.m3u8#https://www.guihet.com/216.m3u8
最终就是下图的按照一定的大小顺序排列的多源的效果。

《C# List集合排序的简单应用》
基本的解决思路:

public class TelePlayer
{
    private List<iQiYi> myQIYIs = new List<TelePlayer.iQiYi>();
    private void get_iqiyi_URL()
    {
            myQIYIs.Clear();
            ...
            foreach (var it in vdata)
            {
                iQiYi myQIYI = new TelePlayer.iQiYi();
                 ...          
                myQIYI.sizx = .. ; //省略步骤,取得某一值..
                myQIYI.link = .. ; //同上
                myQIYIs.Add(myQIYI);
            }
            myQIYIs.Sort(delegate (iQiYi p1, iQiYi p2)
            {
                return  -p1.sizx.CompareTo(p2.sizx);
            });
            //这样myQIYIs里值就按照降序排列的了,后续可以继续遍历等处理 ..
    }
}
public class iQiYi//首先新建一个实体类.
{
        public string link { get; set; }
        public int sizx { get; set; }
}

其中sort有三种结果 1,-1,0分别是大,小,相等。默认List的排序是升序排序,以上我加了个“-”表示降序。
按照这个方法我就可以直接按照视频分辨率的大小降序或升序进行组合。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

  1. 等风吹 等风吹 说道:

    播放器的root 密码是多少啊

  2. 鸟叔 说道:

    最近在学习python

  3. 凯少技术网 说道:

    完全看不懂,,,膜拜大佬!! :016: