繁体   English   中英

c# Linq 按嵌套列表的成员排序列表

[英]c# Linq sort List by member of nested List

我有

List<ObjectA> 
ObjectA is a List<ObjectB> 
ObjectB is List<ObjectC>

ObjectC 之一是 class 字段 ID(我可以指定)和字段“名称”

var result = List<ObjectA>
.OrderBy(t => t.ObjectB[1]    
.ObjectC   
.Where(c => c.ID.Equals("ID"))  
.FirstOrDefault().Name)
  • 有用。

我不想对 ObjectB 使用强索引。 就像是

var result = List<ObjectA>
.OrderBy(t => t.ObjectB.Where(s=>s
.ObjectC
.Where(c => c.ID.Equals("ID"))
.FirstOrDefault().Name)
  • 当然它不起作用:)。

那么,如何按名称对列表进行排序?

谢谢。

您似乎可以利用SelectMany来展平嵌套的 collections。 应该看起来像这样:

var result = List<ObjectA>
    .OrderBy(t => t.ObjectB
        .SelectMany(s => s.ObjectC)
        .Where(c => c.ID.Equals("ID"))
        .FirstOrDefault()?.Name)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM