【问题标题】:Order/Sort a nested generic list对嵌套的通用列表进行排序/排序
【发布时间】:2012-02-16 21:55:12
【问题描述】:

我有两个类似的实体:

public class Movie
{
    public int MovieID { get; set; }

    public string Title { get; set; }

    public List<Director> Directors { get; set; };

    public int Year { get; set; }
}

public class Director
{
    public int DirectorID { get; set; }

    public string Name { get; set; }

    public List<Movie> Movies { get; set; }
}

假设我想按导演的名字订购电影列表:

Movies.OrderBy (??? => ???)

我该怎么做?

提前致谢。

【问题讨论】:

  • 看起来电影可以有很多导演。你想用哪一个来排序?
  • 这在逻辑上是不可能的,因为一部电影可以有多个导演。您是按 FIRST 导演的名字订购的吗?如果一部电影没有导演怎么办?
  • 为什么在公共变量上使用get set?
  • @Marius 这些是 C# 中自动实现的属性
  • 这些不是我的真实实体,我只是为这个问题写了一些更“干净”的东西。 @Eric 电影不能没有导演。在下面的回复中像 L.B show 一样订购满足我的条件

标签: c# list generics sorting sql-order-by


【解决方案1】:
var orderedMovies =
    movies.OrderBy(movie => 
                    String.Join(",", movie.Directors
                                             .OrderBy(dir => dir.Name)
                                             .Select(dir => dir.Name)
                    )
    );

【讨论】:

    猜你喜欢
    • 2013-02-06
    • 1970-01-01
    • 1970-01-01
    • 2010-09-21
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多