Czy tego rodzaju testowanie jest niezbędne podczas usuwania elementu?C# Lista <T> Zawiera test
if (_items.Contains(item))
{
_items.Remove(item);
}
A co z tym testem?
if (!_items.Contains(item))
{
_items.Add(item);
}
Czy tego rodzaju testowanie jest niezbędne podczas usuwania elementu?C# Lista <T> Zawiera test
if (_items.Contains(item))
{
_items.Remove(item);
}
A co z tym testem?
if (!_items.Contains(item))
{
_items.Add(item);
}
Nie trzeba testować, aby usunąć. Funkcja remove() zwróci wartość false, jeśli nic nie usunie.
Jeśli nie chcesz, aby zduplikowane elementy na liście można było przetestować przed dodaniem. W przeciwnym razie będziesz mieć duplikaty.
Zobacz także: http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx
Jeśli nie chcesz duplikatów, nie powinieneś testować; powinieneś użyć kolekcji, która nie pozwala na duplikowanie. W przeciwnym razie nie masz bezpieczeństwa wątków. – Tordek
Założenie, że bezpieczeństwo wątków jest problemem. Jeśli tak jest, musisz również upewnić się, że twoja klasa kolekcji jest wątkowo bezpieczna (domyślam się, że MS może być, idk). – snarf
Można również użyć HashSet <T> jeśli chcesz mieć możliwość dodawania() element kilka razy i ma istnieć tylko w zbiorach raz, bez sprawdzania Zawiera() pierwszy.
Dlaczego po prostu nie przeczytasz dokumentacji i nie spróbujesz? Wygląda na to, że łatwo jest się o tym dowiedzieć. –
Nie widzę, co jest złego w zadawaniu pytania na Stackoverflow, nawet jeśli masz rację, że czytanie dokumentacji jest zawsze dobrym odruchem. Odpowiedzi w tym miejscu mogą również dostarczyć dodatkowych informacji, które mogą być dla niego interesujące (np. Wzmianka o Hashset w drugiej odpowiedzi). –