如何在条件下使用RemoveAll删除列表中的多个项目
本文关键字:列表 项目 删除列 删除 条件下 RemoveAll | 更新日期: 2023-09-27 18:13:20
我试着这样做。
MyList.RemoveAll(t => t.Name == "ABS");
MyList.RemoveAll(t => t.Name == "XYZ");
MyList.RemoveAll(t => t.Name == "APO");
我该怎么做呢?
MyList.RemoveAll(t => t.Name == "ABS" || t => t.Name == "XYZ" ||t => t.Name == "APO");
您只需要一个 lambda表达式- ||
在其中:
MyList.RemoveAll(t => t.Name == "ABS" || t.Name == "XYZ" || t.Name == "APO");
换句话说,"给定一个t
,如果t.Name
是ABS,或者如果t.Name
是XYZ,或者如果t.Name
是APO,我想删除该元素。"
只有一个"给定t
"在那里,这就是t =>
部分的意思,有效地
一种更可扩展的方法是使用List来列出要删除的内容
List<T> toRemove = ...
MyList.RemoveAll(t => toRemove.Contains(t.Name));
其中T是一个字符串
或
var nameToRemove = new[]{"ABS", "XYZ", "APO"};
MyList.RemoveAll(t => nameToRemove.Contains(t.Name))
如果列表中不需要有多个项目,则应考虑使用HashSet
而不是List