51 votes

Valeur entière maximale trouvée dans list<int>

J'ai un List<int> avec plusieurs éléments. Je sais que je peux obtenir toutes les valeurs si je les itère avec foreach mais je veux juste la valeur maximale de la liste.

var l = new List<int>() { 1, 3, 2 };

83voto

Michael Petrotta Points 35647

En supposant l'existence de .NET Framework 3.5 ou supérieur :

var l = new List<int>() { 1, 3, 2 };
var max = l.Max();
Console.WriteLine(max); // prints 3

Des tas et des tas d'astuces pour gagner du temps, comme celles-ci, dans la rubrique Enumérable classe.

13voto

Yuriy Faktorovich Points 33347

Utiliser Enumerable.Max

int max = l.Max();

7voto

Rob Points 4309
int max = (from l in list select l).Max().FirstOrDefault();

comme indiqué dans le commentaire, il devrait s'agir de

l.Max();

3 votes

Sauf si l est une liste d'énumérables, cela ne compilera pas, et il n'y a pas d'intérêt à ce que (from l in list select l)

0 votes

@Yuriy vous avez raison - je fais actuellement beaucoup de Linq to EF et j'ai oublié qu'il s'agissait d'un simple l.Max() ; j'ai également supposé que List<int> qui est déclaré dans le titre de ce post est IEnumerable.

4voto

Vous pouvez utiliser cette syntaxe :

l.OrderByDescending(x => x).First(); //for maximum

l.OrderBy(x => x).First(); // for minimum

ou vous pouvez utiliser les méthodes Max() et Min() de linq.

J'espère que ce que j'ai dit vous sera utile... .

3voto

saleem kalro Points 443
using System.Linq;
using System.Collections.Generic;

int Max = list.Max();

2 votes

Cela répond à la question ! Mais je pense que Yuriy couvre déjà cette question.

0 votes

@jpaugh Il répond à la question, mais il duplique deux des réponses précédentes.

0 votes

J'ai utilisé int Max = list.Max() ; mais dans mon cas, l'espace de noms using System.Linq ; a été omis et Max() n'a donc pas été appliqué à la liste.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X