List <t> .Remove()如何在完全相同的对象上工作</t>

时间:2012-07-15 00:14:59

标签: c# generics

很抱歉,如果非常原始的问题,但我不确定它如何与List一起工作,当你调用Remove()方法并传递给它一个对象时,在集合中一个具有完全相同的字段和值的对象已经存在。

我有一个这样的课程:

public class Test
{
    private List<string> _names;

    public void Add(string name)
    {
        _names.Add(name);
    }

   public void Remove(string name)
   {
        _names.Remove(name)
   }
}

如果已经列出了name的同一个(实例),会发生什么?考虑从另一个类调用这个Remove方法吗?

1 个答案:

答案 0 :(得分:8)

Read the documentation

它代表.Remove(T item)

“从List<T>删除特定对象的第一个匹配项。”

如果要删除所有出现的内容,请使用.RemoveAll(Predicate<T> match),如下所示:

public void Remove(String name) {
    _names.RemoveAll( s => s.Equals( name ) );
}