簡體   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