gpt4 book ai didi

c# - 使用 linq 从多个嵌套列表中删除项目

转载 作者:行者123 更新时间:2023-11-30 20:17:22 25 4
gpt4 key购买 nike

我在父列表 TransactionHistoryDe​​tails 中嵌套了列表项 ParticipantsDetailsAssigneeDetails

两个嵌套列表都包含 Name 属性,我想删除包含 Name 的项目作为 null

代码:

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);
});

注意:对此有多种替代方法。例如,您可以在 TransactionHistoryDe​​tails 上引入一个方法来“清理”两个列表,从根本上隐藏两条 RemoveAll 行。

关于c# - 使用 linq 从多个嵌套列表中删除项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44830799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com