user366312
user366312

Reputation: 17006

C# List<T> Contains test

Is this kind of if-testing necessary when removing an item?

if (_items.Contains(item))
{
    _items.Remove(item);
}

And, what about this test?

if (!_items.Contains(item))
{
    _items.Add(item);
}

Upvotes: 5

Views: 315

Answers (2)

Saxon Druce
Saxon Druce

Reputation: 17624

You could also use a HashSet<T> if you want to be able to Add() an item multiple times and have it only exist in the collection once, without checking Contains() first.

Upvotes: 7

Lance Fisher
Lance Fisher

Reputation: 25823

You don't have to test to remove. Remove() will return false if it didn't remove anything.

If you don't want duplicate items in your list you can test, before adding. Otherwise, you'll have duplicates.

See also: http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx

Upvotes: 11

Related Questions