Paradigmas C #: efeitos colaterais nas listas

Estou tentando melhorar minha compreensão dos efeitos colaterais e como eles devem ser controlados e aplicado

Na lista de vôos a seguir, desejo definir uma propriedade de cada voo que satisfaça as condições:

IEnumerable<FlightResults> fResults = getResultsFromProvider();

//Set all non-stop flights description
fResults.Where(flight => flight.NonStop)
        .Select(flight => flight.Description = "Fly Direct!");

Nesta expressão, tenho um efeito colateral na minha lista. Pelo meu conhecimento limitado, eu sei por ex. "LINQ é usado para consultas only "e" Existem apenas algumas operações nas listas e atribuindo ou definir valores não é um deles "e" as listas devem ser imutáveis ".

O que há de errado com a minha declaração LINQ acima e como ela deve ser alterada?Onde posso obter mais informações sobre oaradigmas fundamentais no cenário que descrevi acima?

questionAnswers(6)

yourAnswerToTheQuestion