过滤列表内部

时间:2017-11-14 16:02:55

标签: c#

首先,我用一些具有不同行业的对象填写列表,之后我想从此列表中删除所有不适当的对象。 当然,它抛出一个异常,说该列表已被修改,并导致枚举问题。如何管理这个并删除所有不适当的对象而不使用其他List,例如,ListFiltred,我可以添加所有适当的对象?

MyList.Add(new Houses() { Number = "04" });
MyList.Add(new Houses() { Number = "01" });
MyList.Add(new Houses() { Number = "02" });
MyList.Add(new Houses() { Number = "04" });
MyList.Add(new Houses() { Number = "04" });
foreach (var item in MyList)
{
    if (item.Number != "04")
    {
        MyList.Remove(item);
    }
}

2 个答案:

答案 0 :(得分:10)

resources有一个采用谓词的RemoveAll方法。您可以像这样使用它:

List<T>

答案 1 :(得分:3)

使用 RemoveAll 直接方法

MyList.RemoveAll(val=>val.Number != "04");