Supponiamo di avere una lista di oggetti e vorremmo estrarre dalla lista una proprietà e concatenarla alla successiva, magari aggiungendo un separatore come il punto e virgola.
Con Linq questa operazione è estramente veloce, basta utilizzare l'extension method denominato Aggregate.
Esempio:
public class Foo { public string Proprieta1 { get; set; } public string Proprieta2 { get; set; } public string Proprieta3 { get; set; } }
Popoliamo la lista:
IListlist = new List () { new Foo() {Proprieta1 = "a1",Proprieta2 = "b1",Proprieta3 = "c1"}, new Foo() {Proprieta1 = "a2",Proprieta2 = "b2",Proprieta3 = "c2"}, new Foo() {Proprieta1 = "a3",Proprieta2 = "b3",Proprieta3 = "c3"} };
Ora testiamo il risultato:
var proprieta1Concatenata = list.Select(x => x.Proprieta1).Aggregate((x, y) => x + ";" + y); Assert.AreEqual("a1;a2;a3",proprieta1Concatenata);
0 commenti:
Posta un commento