Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C# List<T> Contains test

Tags:

c#

list

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);
}
like image 399
user366312 Avatar asked Oct 20 '09 00:10

user366312


2 Answers

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

like image 80
Lance Fisher Avatar answered Sep 30 '22 08:09

Lance Fisher


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.

like image 34
Saxon Druce Avatar answered Sep 30 '22 09:09

Saxon Druce