2015-02-10 58 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