Min et max en fonction de quoi ? Un point n'est pas intrinsèquement plus "grand" ou plus "petit" qu'un autre, il faut définir un critère de comparaison.
Supposons par exemple que tu veuilles chercher le point avec la plus grande valeur de X. Une approche simple est de faire une boucle en maintenant une variable qui contient la plus grande valeur rencontrée jusqu'ici :
1 2 3 4 5 6 7 8 9 10 11 12
| List<PointF> points = ...
float xMax = float.MinValue;
PointF pMax = default(PointF);
foreach(PointF p in points)
{
if (p.X > xMax)
{
xMax = p.X;
pMax = p;
}
} |
A la fin de la boucle, pMax est le point qui a le plus grand X
Sinon tu peux aussi utiliser Linq :
PointF pMax = points.OrderByDesc(p => p.X).FirstOrDefault();
Mais cette technique n'est pas la plus efficace, car elle trie la liste alors qu'il suffirait de la parcourir une fois
Si tu veux juste récupérer le plus grand X (et non le point qui a le plus grand X), c'est plus simple :
float xMax = points.Max(p => p.X);
Partager