看起来很相似,但我的问题却完全不同了。我有一个列表,其中包含实现不同接口的对象。 我想删除特定类型的对象,但是在传递了另一个标准之后。下面给出了示例代码。
// remove the not required parameters
foreach (EndPoint endPoint in endPoints)
{
var maps = endPoint.EndPointParameters
.Where(x => x is IEndPointParamMapCustom)
.Cast<IEndPointParamMapCustom>()
.Where(x => !x.IsActive)
.ToList();
foreach (var custom in maps)
{
endPoint.EndPointParameters.Remove(custom);
}
}
我想删除下面的foreach循环并删除上面单个LINQ查询中的对象。可能吗? 谢谢。
答案 0 :(得分:2)
您可以使用RemoveRange
功能
endPoint.endPointParameters.RemoveRange(maps)
答案 1 :(得分:1)
如果EndPointParameters
是List<T>
(&#34;从列表中移除多个对象&#34;),您可以尝试RemoveAll
而不是< EM> LINQ的:
// Remove the not required parameters
foreach (EndPoint endPoint in endPoints)
{
// Remove all items from EndPointParameters that both
// 1. Implement IEndPointParamMapCustom
// 2. Not IsActive
endPoint
.EndPointParameters
.RemoveAll(item => (item as IEndPointParamMapCustom)?.IsActive == false);
}