Comment obtenir la plus grande valeur de la liste de l'objet?
Je veux comparer le numéro de cas ceci est _abcbloc.vpstream.value code> sortie: p>
3 Réponses :
Comme mentionné dans les commentaires, écrivez simplement le type des paramètres de la Lambda comme Edit: Comme l'a noté les autres réponses, vous ne devez pas utiliser un appel code> code> car il est moins efficace (O (nlogn)) qu'il ne doit être (O (N)). Ainsi, alors que ce que j'ai dit fonctionne, il serait préférable d'utiliser un appel de réduction. P> (ABC A, ABC B) CODE> Pour dire au compilateur de DART sur les types de la Lambda. Sans types, le compilateur DART suppose qu'ils sont dynamique code>, qui soulève le problème à laquelle vous êtes confronté. P>
Je souhaite également ajouter que vous n'avez pas besoin de code> Sort code> la carte si vous voulez simplement trouver la plus grande valeur. Vous pouvez plutôt utiliser le Réduire CODE> A > Méthode à parcourir chaque valeur dans la liste et déterminez quelle valeur que vous souhaitez conserver dans l'itération: void main() {
final listOfMaps = [
{'caseNumber': 1},
{'caseNumber': 3},
{'caseNumber': 2}
];
final mapWithBiggestCaseNumber =
listOfMaps.reduce((a, b) => a['caseNumber'] > b['caseNumber'] ? a : b);
print(mapWithBiggestCaseNumber); // {caseNumber: 3}
}
Vous pouvez utiliser la bibliothèque de mathématiques et réduire pour vérifier la valeur max
Avez-vous essayé d'écrire explicitement les types de paramètres? Exemple:
(ABC A, ABC B) => A ['CASENUMHO]. Comparète (B [' CASENUMHE ']) CODE>