使用linq从多个嵌套列表中删除项目
问题描述:
我有嵌套列表项目ParticipantsDetails
& AssigneeDetails
内部父列表TransactionHistoryDetails
。使用linq从多个嵌套列表中删除项目
两个嵌套列表包含Name
财产,我想删除包含Name
作为null
代码项目:
此代码的工作!但是有什么办法可以通过使用||
运算符来实现同一行?
答
您无法在单行中实现此目的,因为您的两个RemoveAll
调用在两个单独的集合上操作。您可以在两个lambda表达式组合成一个单一的一个,比如这个:
transactionHistory.TransactionHistoryDetails.ForEach(u => {
u.ParticipantsDetails.RemoveAll(a => a.Name == null);
u.AssigneeDetails.RemoveAll(a => a.Name == null);
});
注:有其他办法了这一点。例如,您可以在TransactionHistoryDetails
上引入一种方法来“清理”两个列表,实质上隐藏两条不可见的线。
难道你不喜欢()=> {** code **}方法吗?这样你就可以用同样的方法做所有的事情,但括号内的两行代码体 –
为什么你只需要一行?你可能会得到一条更复杂的线路,这会让另一个开发人员很难理解它在做什么。如果它提高可读性,可以更详细一些。 –
我在该代码中看不到LINQ。 –