Por que a outra lista também muda se eu alterei os dados de uma lista? [duplicado]

Esta pergunta já tem uma resposta aqui:

Como fazer o clone correto da lista <MyObject>? [duplicado] 3 respostas

Eu tenho uma aula

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; }
}

Criei uma nova lista usando esta classe, conforme mencionado abaixo

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();

Eu também inicializei uma nova listaList<MatchAddress> lm;

Agora eu estou atribuindodst&nbsp;lista paralm&nbsp;como abaixo

lm = dst ;


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

depois disso, a propriedadePincode&nbsp;para a listalm&nbsp;definido comonull&nbsp;onde nome = "XYZ".

e por esse motivo listalm&nbsp;são atualização e definem o campo pincode null.

mas minha pergunta é por que essa lista lm também atualiza o resultado da lista dst.

elm&nbsp;lista também define o código PIN nulo na listadst.

e nós fazemos o clone dodst&nbsp;listar emlm&nbsp;então porque listarlm&nbsp;alterar também a lista dst ??

Eu sei que a razão por trás disso não é a resposta por que isso acontece se você souber, por favor, deixe-me agora.

Eu não quero a resposta desta pergunta