Beh personalmente non vorrei scrivere il codice in questo modo comunque - ma si può semplicemente utilizzare un statement lambda:
Un lambda dichiarazione assomiglia a una lambda espressione eccezione del fatto che la dichiarazione (s) è racchiuso in bretelle
Il corpo di una dichiarazione lambda può essere costituito da un numero qualsiasi di affermazioni; tuttavia, in pratica, in genere non ci sono più di due o tre.
Quindi la chiamata ForEach
sarebbe simile a questa:
.ForEach(x => {
x.BtnColor = Color.Red.ToString();
x.OtherColor = Color.Blue.ToString();
});
vorrei scrivere un foreach
ciclo invece però:
var itemsToChange = objFreecusatomization.AllCustomizationButtonList
.Where(p => p.CategoryID == btnObj.CategoryID
&& p.IsSelected
&& p.ID == btnObj.ID);
foreach (var item in itemsToChange)
{
item.BtnColor = Color.Red.ToString();
item.OtherColor = Color.Blue.ToString();
}
(È possibile inline la query nella dichiarazione foreach
stesso, ma personalmente trovo l'approccio di cui sopra utilizzando un separatore di variabili locali separato.)
fonte
2013-08-23 12:35:32
Non abusare LINQ per modificare la raccolta. È uno strumento di query. Il tuo approccio non è più leggibile di un 'foreach', ma è molto meno efficiente. –
Quindi dovrebbe essere un'espressione lamda che può funzionare? o in qualsiasi altro modo, o ho bisogno di loop dopo aver preso oggetto. – NoviceToDotNet