C#List <T>包含测试

use*_*312 5 c# list

在移除物品时是否需要进行此类测试?

if (_items.Contains(item))
{
    _items.Remove(item);
}
Run Code Online (Sandbox Code Playgroud)

而且,这个测试怎么样?

if (!_items.Contains(item))
{
    _items.Add(item);
}
Run Code Online (Sandbox Code Playgroud)

Lan*_*her 11

您无需进行测试即可删除.如果删除任何东西,Remove()将返回false.

如果您不希望列表中有重复项,则可以在添加之前进行测试.否则,你将有重复.

另见:http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx

  • 如果你不想要重复,你不应该测试; 你应该使用一个不会让你有重复的集合.否则,您没有线程安全性. (2认同)

Sax*_*uce 7

您还可以使用HashSet <T>,如果您希望能够多次添加项目并使其仅存在于集合中一次,而不首先检查Contains().