有什么想法或方法来添加此代码,以根据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;
}
}
}
答案 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个元素。
对不起,如果我不清楚,通常我会提供更多详细信息,但是您承认它是用于学校项目的,所以我将有一些疑问。