我有一類如果我更改了一個列表的數據,爲什麼另一個列表也會更改?
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; }
}
我有提到以下
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();
我也初始化新的列表List<MatchAddress> lm;
現在我分配dst
列表創建使用這個類的新名單lm
like below
lm = dst ;
foreach (MatchAddress ma in lm)
{
if (ma.Name == "xyz")
{
ma.Pincode = null;
}
}
此後,確保將Pincode
的屬性列表lm
設置爲null
,其中name =「XYZ」。
並且因此原因列表lm
被更新並且設置PIN碼字段爲空。
但我的問題是,爲什麼該列表lm也更新列表dst的結果。
and lm
list還在列表dst
中設置pincode爲null。
我們使dst
列表的克隆爲lm
爲什麼列表lm
也改變了列表dst?
我知道背後的原因不是這個答案爲什麼這發生如果你知道,那麼請讓我現在。
我不想對這個問題
你最好不要讓dst'的'克隆,你'dst'列表分配到'這是參考指派lm'列表簡單的擴展方法,這就是爲什麼這兩個名單改變。 –