为什么我的原始列表与list.removeall()的重复列表的值相同

时间:2018-03-23 07:05:22

标签: c# asp.net list lambda

listRemoveMarkers = listCurrentPostsMarkers;

listRemoveMarkers.RemoveAll(x =>
  listLocations.Exists(y => y.Latitude == x.Position.Latitude && 
                            y.Longitude == x.Position.Longitude));

逐行调试 - listCurrentPostsMarkers 有2个值,然后在另一个列表“ listRemoveMarkers ”中分配相同的值,并从 listRemoveMarkers中删除所有值 listLocations 列表进行比较后。 RemoveAll()工作正常,我在 listRemoveMarkers 中获得了所需的值但是现在我不知道为什么我的 listCurrentPostsMarkers 受到影响了?它与 listRemoveMarkers 的值相同。帮我理解这个。提前谢谢。

1 个答案:

答案 0 :(得分:3)

for i in self.Citizen:
 AttributeError: 'str' object has no attribute 'Citizen'

不创建新列表,但将listRemoveMarkers = listCurrentPostsMarkers; 引用指向同一个实例。

您可以创建一个新列表来避免这种情况:

listRemoveMarkers