如何借助此评级使此代码列出前二十部电影?

时间:2018-08-18 17:44:38

标签: c#

有什么想法或方法来添加此代码,以根据item.rating列出前20名电影?在C#中,因为我们正在做一个学校项目,正在建立电影数据库,所以如果有人在我学习编程时也能给我一些提示,我将不胜感激。

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 个答案:

答案 0 :(得分: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();
}

答案 1 :(得分:0)

您的GetMovieCollection方法返回一个List<T>。列表具有用于排序和提取数据范围的方法。对列表进行排序,然后提取前20个元素。

对不起,如果我不清楚,通常我会提供更多详细信息,但是您承认它是用于学校项目的,所以我将有一些疑问。

https://github.com/byt3bl33d3r/MITMf