Cambiar algún valor dentro de la Lista <T>

Tengo alguna lista (donde T es una clase personalizada y la clase tiene algunas propiedades). Me gustaría saber cómo cambiar uno o más valores dentro de él utilizando Expresiones Lambda, por lo que el resultado será el mismo que el siguiente bucle de foreach:

NOTA: la lista contiene varios elementos dentro (varias filas)

        foreach (MyClass mc in list)  
        {
            if (mc.Name == "height")
                mc.Value = 30;
        }

Y esta es la consulta de linq (usando expresiones Lambda), pero no es lo mismo que el bucle foreach superior, ¡solo devuelve 1 elemento (una fila) de la lista!

Lo que quiero es que devuelva todos los elementos (todas las filas) y SOLAMENTE cambie el adecuado (los elementos especificados en el (los) método (s) de extensión DÓNDE).

list = list.Where(w => w.Name == "height").Select(s => { s.Value = 30; return s; }).ToList();

NOTA: estos 2 ejemplos no son lo mismo! Repito, el linq solo devuelve 1 elemento (una fila), y esto es algo que no quiero, también necesito todos los elementos de la lista (como foreach loop, solo hace cambios, pero no elimina ningún elemento).