如何从列表中删除满足where条件的行?

时间:2019-10-21 09:27:19

标签: c#

我有一个要删除的行列表:

phraseSources.Where(i => i.JmdictMeaning == "Exception2" || i.JmdictMeaning == "Not found")
             .ToList()

有人可以建议我如何删除行,即使可能的话。如果不是这样的话,我想我将不得不创建另一个列表,但是我想对此提供一些建议。

2 个答案:

答案 0 :(得分:4)

RemoveAll(Predicate<T>)应该可以完成这项工作。

phraseSources.RemoveAll(i => i.JmdictMeaning == "Exception2" || i.JmdictMeaning == "Not found");

旁注:RemoveAll返回已删除项目的数量,以备不时之需。

答案 1 :(得分:0)

您还可以选择并重新分配结果,

phraseSources = phraseSources.Where(i => !(i.JmdictMeaning == "Exception2" || i.JmdictMeaning == "Not found")).ToList()