Как мне составить этот список кодов из двадцати лучших фильмов с помощью рейтинга?

Любые идеи, как или что добавить, чтобы сделать этот код в списке 20 лучших фильмов на основе item.rating? В C# потому что мы делаем школьный проект, в котором мы создаем базу данных Movie, поэтому я был бы признателен, если бы кто-то также мог дать мне несколько советов, когда я учусь программировать.

using System;
using System.Collections.Generic;
using System.Xml;
using System.Linq;

namespace MovieCollection
{
    class Program
    {
        static void Main(string[] args)
        {
            List<Movie> movieColletion = GetMovieCollection();   
        }

        static List<Movie> GetMovieCollection()
        {
            List<Movie> list = new List<Movie>();

            XmlDocument doc = new XmlDocument();
            doc.Load(System.Environment.CurrentDirectory + "/moviecollection.xml");

            XmlNode node = doc.DocumentElement.SelectSingleNode("/MovieCollection/Movies");
            list.OrderBy(x => "/moviecollection.xml").ToList();
            list.OrderBy(x => GetMovieCollection()).ToList();

            foreach(XmlNode row in node.ChildNodes)
            {
                Movie item = new Movie();

                item.id = Int32.Parse(row.SelectSingleNode("Id").InnerText);
                item.name = row.SelectSingleNode("Name").InnerText;
                item.rating = Double.Parse(row.SelectSingleNode("Rating").InnerText.Replace(".", ","));
                item.votes = Int32.Parse(row.SelectSingleNode("Votes").InnerText);  
                item.year = Int32.Parse(row.SelectSingleNode("Year").InnerText);                

                list.Add(item);
                System.Console.WriteLine(item.name + " " + item.rating);
            }
            return list;
        }
    }
}

2 ответа

// assuming higher ratings are better:
static void Main(string[] args)
{
    List<Movie> movieColletion = GetMovieCollection();
    List<Movie> top20Movies = movieCollection
        .OrderByDescending(m => m.rating)
        .Take(20)
        .ToList();
}

Ваш GetMovieCollection метод возвращает List<T>, Списки имеют методы для сортировки и извлечения диапазонов данных. Сортируйте список, затем извлеките первые 20 элементов.

Извините, если я неясен, обычно я помог бы более подробно, но вы признали это для школьного проекта, так что я собираюсь оставить некоторые вопросы под сомнение.

https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1?view=netframework-4.7.2

Другие вопросы по тегам