如何按子对象排列父对象

  • 本文关键字:对象 排列 何按 c# linq
  • 更新时间 :
  • 英文 :


我有一个列表<PaperAbstract>类。PaperAbstract类有一组Authors。其中一个作者具有标志IsSubmission true。我如何订购我的列表<论文摘要>提交作者LastName?

public class PaperAbstract
{
    public string Title { get; set; }
    public List<Author> Authors { get; set; }
}
public class Author
{
    public bool IsSubmitting { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

例如:

var paperAbstracts = new List<PaperAbstract>();
paperAbstracts.Add(new PaperAbstract
{
    Title = "Abstract 2",
    Authors = new List<Author>
    {
        new Author { IsSubmitting = false, FirstName = "F5", LastName = "L5"},
        new Author { IsSubmitting = true, FirstName = "F6", LastName = "L6"}
    }
});
paperAbstracts.Add(new PaperAbstract
{
    Title = "Abstract 3",
    Authors = new List<Author>
    {
        new Author { IsSubmitting = true, FirstName = "F1", LastName = "L1"},
        new Author { IsSubmitting = false, FirstName = "F2", LastName = "L2"}
    }
});
paperAbstracts.Add(new PaperAbstract
{
    Title = "Abstract 1",
    Authors = new List<Author>
    {
        new Author { IsSubmitting = false, FirstName = "F3", LastName = "L3"},
        new Author { IsSubmitting = true, FirstName = "F4", LastName = "L4"}
    }
});

论文摘要的正确顺序应为摘要3、摘要1、摘要2。

您可以从LINQ:使用OrderBy

 var result = input.OrderBy(x => x.Authors
                                  .First(a => a.IsSubmitting).LastName)

最新更新