Warum ändert sich die andere Liste auch, wenn ich die Daten einer Liste geändert habe? [Duplikat
Diese Frage hat hier bereits eine Antwort:
Wie mache ich einen korrekten Klon der Liste <MyObject>? [Duplikat 3 answersIch habe eine Klasse
class MatchAddress
{
public string Name { get; set; }
public string Taluka { get; set; }
public string District { get; set; }
public string Pincode { get; set; }
public float Rank { get; set; }
}
Ich habe mit dieser Klasse eine neue Liste erstellt, wie unten angegeben.
var dst = ds.Tables[0].AsEnumerable()
.Select(s => new MatchAddress
{
Name = s.Field<String>("officename").Trim().ToLower(),
Pincode = Convert.ToString(s.Field<double>("pincode")).Trim(),
Taluka = s.Field<String>("Taluk").Trim(),
District = s.Field<String>("Districtname").Trim(),
Rank = 0f
})
.ToList();
Ich habe auch eine neue Liste initialisiertList<MatchAddress> lm;
Jetzt bin ich vergebendst
Liste zulm
Wie unte
lm = dst ;
foreach (MatchAddress ma in lm)
{
if (ma.Name == "xyz")
{
ma.Pincode = null;
}
}
danach sicher das PropertyPincode
für die Listelm
einstellennull
where name = "XYZ".
und aus diesem Grund Listelm
werden aktualisiert und das PIN-Code-Feld auf null gesetzt.
aber meine Frage ist, warum diese Liste ich auch das Ergebnis der Liste dst aktualisiere.
undlm
liste setze auch pincode null in der listedst
.
und wir machen den Klon desdst
Liste inlm
Also warum Listelm
Ändern Sie die Liste auch dst ??
Ich weiß, warum das passiert, wenn du es dann weißt, lass es mich jetzt bitte wissen.
Ich möchte nicht auf die Antwort auf diese Frage