Il problema era che tu raggruppavi per istanza del tipo attribute e non per il valore contenuto.
Quindi anche se due istanze di attribute hanno lo stesso attributo non vuol dire che sono la stessa cosa ed ecco perchè ti creava gruppi differenti per lo stesso attributo.
La soluzione è quella che ti ho fornito ovvero raggruppare per valore dell'attribute.
Non mi resta che dirti di vedere come funziona il group by in linq perché chiaramente se ti scrivo io la query linq(anche se ti ho già fatto un esempio) non impari come funziona il meccanismo ma semplicemente come si dice "hai avuto la pappa pronta"
![]()