Zmień wartość wewnątrz listy <T>

Mam listę (gdzie T jest klasą niestandardową, a klasa ma pewne właściwości). Chciałbym wiedzieć, jak zmienić jedną lub więcej wartości na jego podstawie, używając Wyrażeń Lambda, więc wynik będzie taki sam jak poniżej pętli foreach:

UWAGA: lista zawiera wiele elementów wewnątrz (wiele wierszy)

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

I to jest zapytanie linq (przy użyciu wyrażeń Lambda), ale nie jest to to samo, co górna pętla foreach, zwraca tylko 1 element (jeden wiersz) z listy!

Chcę, aby zwracał wszystkie elementy (wszystkie wiersze) i TYLKO zmienia odpowiedni (elementy określone w metodach rozszerzania WHERE).

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

UWAGA: te 2 przykłady nie są takie same! Powtarzam, linq zwraca tylko 1 element (jeden wiersz), a tego nie chcę, potrzebuję także wszystkich elementów z listy (jak pętla foreach, wykonuje tylko zmiany, ale nie usuwa żadnego elementu).

questionAnswers(5)

yourAnswerToTheQuestion