簡體   English   中英

使用linq從多個嵌套列表中刪除項目

[英]Remove items from multiple nested list using linq

我在父列表TransactionHistoryDetails中嵌套了列表項ParticipantsDetailsAssigneeDetails

嵌套列表都包含Name屬性,我想刪除包含Namenull

碼:

transactionHistory.TransactionHistoryDetails.ForEach(u => u.ParticipantsDetails.RemoveAll(a => a.Name == null));

transactionHistory.TransactionHistoryDetails.ForEach(u => u.AssigneeDetails.RemoveAll(a => a.Name == null));

此代碼有效! 但是有什么辦法可以使用||在一行中實現相同的效果? 運營商?

您無法在一行中實現此目標,因為您對RemoveAll的兩次調用在兩個單獨的集合上進行。 您可以將兩個lambda合並為一個,如下所示:

transactionHistory.TransactionHistoryDetails.ForEach(u => {
    u.ParticipantsDetails.RemoveAll(a => a.Name == null);
    u.AssigneeDetails.RemoveAll(a => a.Name == null);
});

注意:對此有替代方法。 例如,您可以在TransactionHistoryDetails上引入一個方法來“清理”兩個列表,實際上隱藏了兩條RemoveAll行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM