Alterar algum valor dentro da List <T>

Eu tenho uma lista (onde T é uma classe personalizada e a classe tem algumas propriedades). Eu gostaria de saber como alterar um ou mais valores dele usando Lambda Expressions, então o resultado será o mesmo que o loop foreach abaixo:

NOTA: lista contém vários itens dentro (várias linhas)

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

E esta é a consulta do linq (usando expressões Lambda), mas não é o mesmo que o loop foreach superior, só retorna 1 item (uma linha) da lista!

O que eu quero é que ele retorne todos os itens (todas as linhas) e APENAS chnages o apropriado (os itens especificados no (s) método (s) de extensão WHERE.

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

NOTA: estes dois exemplos não são os mesmos! Repito, o linq só retorna 1 item (uma linha), e isso é algo que eu não quero, eu preciso de todos os itens da lista também (como foreach loop, ele só faz mudanças, mas não remove nenhum item).