Почему другой список также меняется, если я изменил данные одного списка? [Дубликат]

На этот вопрос уже есть ответ здесь:

Как сделать правильный клон списка <MyObject>? [Дубликат] 3 ответа

У меня один класс

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 как ниже

lm = dst ;


foreach (MatchAddress ma in lm)
{                       
    if (ma.Name == "xyz")
    {                              
        ma.Pincode = null;
    }
}

после этого обязательно собственностьPincode для спискаlm установлен вnull где имя = "XYZ".

и по этой причине списокlm обновить и установить поле пин-кода пустым.

но мой вопрос заключается в том, почему этот список lm также обновляет результат списка dst.

а такжеlm список также установить нулевой пин-код в спискеdst.

и мы делаем клонdst список вlm так почему списокlm изменить также список DST ??

Я знаю причину этого, а не ответ, почему это происходит, если вы знаете, пожалуйста, дайте мне сейчас.

Я не хочу отвечать на этот вопрос

Ответы на вопрос(2)

Ваш ответ на вопрос