C# - 对结构内部的列表进行排序

时间:2010-12-04 23:03:39

标签: c# list sorting struct

嘿伙计们。我有一份学校的任务,我遇到了麻烦。该任务是创建一个控制台应用程序,允许用户添加,修改和查看电影列表。每部电影都包含标题,年份,导演等属性。我必须使用以下结构:

struct Movie{
    public string title;
    public string year;
    public string director;
    public float quality;
    public string mpaaRating;
    public string genre;
    public List<string> cast;
    public List<string> quotes;
    public List<string> keywords;
}
struct MovieList{
    public int length;
    public Movie[] movie;
}
...
MovieList List = new MovieList()

这是我遇到麻烦的部分。我需要按电影标题对List进行排序。我无法弄清楚正确的方法是什么。有人有什么建议吗?

3 个答案:

答案 0 :(得分:2)

首先,那些不应该是结构,它们应该是课程。结构适用于表示单个值的类型,并且比类更适合实现。

您可以按照以下方式对电影进行排序:

List.movie = List.movie.OrderBy(m => m.title).ToArray();

答案 1 :(得分:2)

因为它是一个数组(单独处理):

Array.Sort(List.movie,
   (a,b)=>string.Compare(a.title,b.title));

答案 2 :(得分:0)

您需要对数组movie进行排序。所以只需使用任何排序方法,例如Merge Sort。 通过比较标题决定电影是否大于/小于另一个电影。

movie[a].title.CompareTo(movie[b].title)