[英]Remove items from multiple nested list using linq
I am having nested list items ParticipantsDetails
& AssigneeDetails
inside parent list TransactionHistoryDetails
. 我在父列表TransactionHistoryDetails
中嵌套了列表项ParticipantsDetails
和AssigneeDetails
。
Both of nested list contains Name
Property and I would like to remove items which contain Name
as null
嵌套列表都包含Name
属性,我想删除包含Name
为null
Code: 码:
transactionHistory.TransactionHistoryDetails.ForEach(u => u.ParticipantsDetails.RemoveAll(a => a.Name == null));
transactionHistory.TransactionHistoryDetails.ForEach(u => u.AssigneeDetails.RemoveAll(a => a.Name == null));
This code works! 此代码有效! But is there any way I can achieve the same in a single line by using ||
但是有什么办法可以使用||
在一行中实现相同的效果? operator? 运营商?
You cannot achieve this in a single line, because your two calls of RemoveAll
operate on two separate collections. 您无法在一行中实现此目标,因为您对RemoveAll
的两次调用在两个单独的集合上进行。 You can combine the two lambdas into a single one, like this: 您可以将两个lambda合并为一个,如下所示:
transactionHistory.TransactionHistoryDetails.ForEach(u => {
u.ParticipantsDetails.RemoveAll(a => a.Name == null);
u.AssigneeDetails.RemoveAll(a => a.Name == null);
});
Note: There are alternative approaches to this. 注意:对此有替代方法。 For example, you can introduce a method on TransactionHistoryDetails
to "sanitize" both lists, essentially hiding two RemoveAll
lines from sight. 例如,您可以在TransactionHistoryDetails
上引入一个方法来“清理”两个列表,实际上隐藏了两条RemoveAll
行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.