J'ai une tableaux avec plusieurs éléments, certains de ces éléments ont le même nom et la répétition via la matrice. J'ai besoin d'obtenir tous les éléments de ce tableau, d'obtenir un seul élément d'éléments répétés et de tous les éléments non répétés.
J'ai lu Ce document sur les tableaux à Dart mais n'a pas beaucoup d'aide. Je n'ai pas d'exemple de code, je ne sais pas comment je commence exactement. P>
faire, quiconque savez comment puis-je faire cela? P>
Beaucoup d'erreurs dans Json, oubliez que c'est un exemple simple. P> dataMaker.forEach((val) {
print(val['fabricante']); //RETURN NAME
if(filteredList!=val['fabricante']()){ //ERROR
filteredList.add(val);
}
});
6 Réponses :
Vous pouvez le faire via définir code>
Cette solution ne fonctionnera pas sur des objets personnalisés. Sur des objets personnalisés, vous devez remplacer == code> &
hascode code>.
Pourquoi ne pas utiliser un et il imprimera le suivant p> définir code>
Si vous voulez simplement obtenir un éventail d'éléments uniques, vous pouvez utiliser "SET" ou "foreach"
working dartpad https://dartpad.dartlang.org/0a76f6dfe66a40b5e3f09ce74a739fe1 p>
Méthode 1 P>
void main() { List list = [1,1,2,3,3,4,5,5,5,6,6]; List filteredList = []; list.forEach((val) { if(filteredList.indexOf(val) == -1){ filteredList.add(val); } }); print(filteredList); } // answer // [1, 2, 3, 4, 5, 6]
Ceci peut sembler un peu primitif, mais fonctionne comme prévu
[2, 5, 7, 9, 22, 6, 4]
Vous pouvez le faire de plusieurs manières, on peut utiliser une autre solution plus élaborée utiliserait classes , pour cela, vous auriez besoin d'abord pour convertir votre JSON en classes régulières en utilisant JSON_SERIALISABLE par exemple, et remplacer le
P> List list = [Person(), Person(), Person()];
var result = list.toSet().toList()
hosar, merci de me diriger dans la bonne direction!
Je n'avais pas besoin de @json_serializable pour un support Toset (), bien que je doive ajouter des décorateurs / annotations @Override. P>
class Person { String name; int age; Person({this.name, this.age}); @override String toString() { return '$name $age'; } @override bool operator ==(o) => o is Person && name == o.name && age == o.age; @override int get hashCode => name.hashCode + age.hashCode; //use a more reliable hashCode }
Pouvez-vous partager votre code, il serait plus utile de résoudre le problème
Tableau de quel genre d'éléments? juste des cordes? Objets ? au moins fournir et exemple de votre tableau.