2
对不起,如果非常原始的问题,但我不知道这是如何工作与列表,当你调用Remove()
方法并传递给它一个对象,在集合中具有完全相同字段和值的对象已经存在。List <T> .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方法?
首先发生?所以它不参考? – 2012-07-15 00:18:52
“列表”中的项目被索引引用,而不是按值引用。 “第一次出现”是'value.Equals(item)'返回true的最小索引值。事实上,在列表中稍后的另一个索引处存在相同的值是无关紧要的,因为它仍然会在该位置(因为'.Remove'操作将会移动项目,所以它会向上移动)。 –
Dai
2012-07-15 00:20:36