2015-02-10 60 views
0

我有一个列表< PaperAbstract> class。一个PaperAbstract类有一组作者。其中一位作者有一个IsSubmitting true的标志。我如何订购我的名单< PaperAbstract>通过提交作者姓氏?如何通过子子对象订购父对象

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"} 
    } 
}); 

paperAbstracts的正确顺序应该是抽象3,摘要1,摘要2.

+0

提交作者姓氏的顺序列表究竟意味着什么? – 2015-02-10 04:39:45

回答

1

您可以使用OrderBy从LINQ:

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

完美! - 谢谢 – CurlyFro 2015-02-10 04:55:40