¿Por qué la otra lista también cambia si he cambiado los datos de una lista? [duplicar]

Esta pregunta ya tiene una respuesta aquí:

¿Cómo hacer un clon correcto de la Lista <MiObjeto>? [duplicar] 3 respuestas

Tengo una clase

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

He creado una nueva lista usando esta clase como se menciona a continuación

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

También he inicializado una nueva listaList<MatchAddress> lm;

Ahora estoy asignadodst&nbsp;lista paralm&nbsp;como abajo

lm = dst ;


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

después de esto seguro la propiedadPincode&nbsp;para la listalm&nbsp;ajustado anull&nbsp;donde nombre = "XYZ".

y por eso listalm&nbsp;se actualizan y establecen nulo el campo de código PIN.

pero mi pregunta es por qué esa lista también actualizo el resultado de la lista dst.

ylm&nbsp;lista también establece nulo de código PIN en la listadst.

y hacemos el clon deldst&nbsp;enumerar enlm&nbsp;Entonces, ¿por qué listarlm&nbsp;cambiar la lista también dst ??

Sé que razonar detrás de esto no es la respuesta de por qué sucede esto si lo sabes, por favor déjame ahora.

No quiero la respuesta de esta pregunta