2

非常に原始的な質問で申し訳ありませんが、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 メソッドを別のクラスから呼び出すことを検討していますか?

4

1 に答える 1

8

ドキュメントを読んでください

それは次のように言います.Remove(T item)

「から特定のオブジェクトの最初のオカレンスを削除しますList<T>。」

すべての出現箇所を削除する場合は.RemoveAll(Predicate<T> match)、次のように使用します。

public void Remove(String name) {
    _names.RemoveAll( s => s.Equals( name ) );
}
于 2012-07-15T00:17:28.153 に答える