public static List <SaveData.HighScore> QuickSortList(this List <SaveData.HighScore> list)
    {
        System.Random             r       = new System.Random();
        List <SaveData.HighScore> less    = new List <SaveData.HighScore>();
        List <SaveData.HighScore> greater = new List <SaveData.HighScore>();

        if (list.Count <= 1)
        {
            return(list);
        }
        int pos = r.Next(list.Count);

        SaveData.HighScore pivot = list[pos];
        list.RemoveAt(pos);
        foreach (SaveData.HighScore player in list)
        {
            if (player.Score <= pivot.Score)
            {
                less.Add(player);
            }
            else
            {
                greater.Add(player);
            }
        }
        return(concat(QuickSortList(less), pivot, QuickSortList(greater)));
    }
    public static List <SaveData.HighScore> concat(List <SaveData.HighScore> less, SaveData.HighScore pivot, List <SaveData.HighScore> greater)
    {
        List <SaveData.HighScore> sorted = new List <SaveData.HighScore>(less);

        sorted.Add(pivot);
        foreach (SaveData.HighScore i in greater)
        {
            sorted.Add(i);
        }

        return(sorted);
    }