Подтвердить что ты не робот

Как сортировать список <> по целому числу, хранящемуся в структуре my List <>

Мне нужно отсортировать файл рекорда для своей игры, которую я написал.

Каждый рекордер имеет переменную Name, Score и Date. Я храню каждый в списке.

Вот структура, которая содержит данные каждого рекордера.

struct Highscore
{
    public string Name;
    public int Score;
    public string Date;

    public string DataAsString()
    {
        return Name + "," + Score.ToString() + "," + Date;
    }
}

Итак, как бы я сортировал список типов рекордов по переменной оценки каждого объекта в списке?

Любая помощь приветствуется: D

4b9b3361

Ответ 1

Я не знаю, почему все предлагают решения на основе LINQ, которые потребуют дополнительной памяти (особенно, поскольку Highscore - это тип значения) и вызов ToList(), если вы хотите повторно использовать результат. Простейшим решением является использование встроенного метода сортировки List

list.Sort((s1, s2) => s1.Score.CompareTo(s2.Score));

Это отсортирует список на месте.

Ответ 2

var sortedList = yourList.OrderBy(x => x.Score);

или используйте OrderByDescending для сортировки в обратном направлении

Ответ 3

Используйте LINQ:

myScores.OrderBy(s => s.Score);

Здесь - отличный ресурс, чтобы узнать о различных операциях LINQ.

Ответ 4

List<Highscore> mylist = GetHighScores();

var sorted = mylist.OrderBy(h=>h.Score);

Ответ 5

Сначала будет отсортирован список с наивысшими баллами:

IEnumerable<Highscore> scores = GetSomeScores().OrderByDescending(hs => hs.Score);