Skip to main content

Posts

Showing posts with the label explicit

ConvertAll - Conversia unei liste mult mai usor

Avem urmatorul scenariu. O lista de elemente de tip A, pe care trebuie sa o convertim la o lista de tip B. Pentru a putea rezolva aceasta problema putem să implementam operatorul implicit sau explicit de conversie, iar apoi să iteram prin lista pentru a face conversia la tipul B. List<A> listaA; List<B> listaB; ... foreach(A a in listaA) { listaB.Add(a); } sau listaB.foreach(item=>listaB.Add(item)); Ambele soluții sunt rezonabile, dar e puțin mai greu de înțeles ca in spate se face o conversie. Pentru a face codul mai clar putem să facem in felul următor: listaB = listaA.ConvertAll<B>(item => item) Ce am scris mai sus? Fiecare element din listaA convertestel in tipul B si adaug-al in colecția care rezulta. item => item am putut sa scrie deoarece am presupus ca un operator de conversie implicita sau explicita intre cele doua tipuri a fost deja implementat. In cazul in care acesta nu ar fi implementat am avea ceva asemanator: Din private B ConvertAToB(A a)...