Boucle foreach multi-lignes dans linq / lambda

Je cherche un moyen de changer le code suivant:

foreach (Contact _contact in contacts) { _contact.ID = 0; _contact.GroupID = 0; _contact.CompanyID = 0; } 

Je voudrais changer cela en utilisant LINQ / lambda dans quelque chose de similaire à:

 contacts.ForEach(c => c.ID = 0; c.GroupID = 0; c.CompanyID = 0); 

Cependant, cela ne fonctionne pas. Existe-t-il un moyen de faire plusieurs lignes dans un for linq en écrivant une fonction pour le faire en une seule ligne?

 contacts.ForEach(c => { c.ID = 0; c.GroupID = 0; c.CompanyID = 0; }); 

Cela n’a rien à voir avec LINQ en soi; c’est juste une simple méthode anonyme écrite en syntaxe lambda transmise à la fonction List.ForEach (qui existait depuis 2.0, avant LINQ).

LINQ signifie Language Integrated Query – ce qui signifie qu’il est destiné à l’ interrogation – c’est-à-dire l’extraction ou la transformation d’une séquence en un nouvel ensemble, sans manipulation de l’original.

La méthode ForEach bloque sur List et est un raccourci pratique pour foreach; rien de spécial.