Comment obtiendriez-vous le min et le max d'un tableau à deux dimensions en utilisant LINQ? Et pour être clair, je veux dire le min/max de tous les éléments dans le tableau (pas le min/max d'une dimension particulière). Ou est-ce que je vais juste devoir traverser la voie à l'ancienne?Obtention du min et du max d'un tableau à deux dimensions à l'aide de LINQ
Répondre
Depuis tableau implémente IEnumerable
vous pouvez simplement faire ceci:
var arr = new int[2, 2] {{1,2}, {3, 4}};
int max = arr.Cast<int>().Max(); //or Min
Vous pouvez implémenter une liste> et trouver les min et max foreach et les stocker dans une liste, puis vous pouvez facilement trouver Min() et Max() de cette liste de toutes les valeurs dans une liste unidimensionnelle. C'est la première chose qui me vient à l'esprit, je suis moi-même curieux et je vais voir si google peut adopter une approche plus propre.
Comment pourriez-vous même obtenir un tableau à deux dimensions dans une liste en premier lieu? – devuxer
Ah, je pensais aller très loin, maintenant je me rends compte que si vous deviez mettre le tableau dans une liste, vous pourriez utiliser le code pour extraire le MIN/MAX de la même boucle que j'avais imaginée pour peupler les listes. :/a été un long deuil avec pas assez de café: D –
Vous pouvez aplatir le tableau, @devuxer – Zimano
Cela semble fonctionner:
IEnumerable<int> allValues = myArray.Cast<int>();
int min = allValues.Min();
int max = allValues.Max();
ici est variante:
var maxarr = (from int v in aarray select v).Max();
où aarray est int [, ]
- 1. Tâche de l'assembleur - valeurs min et max du tableau
- 2. Min/Max à travers un tableau d'objets
- 3. Tableau dynamique à deux dimensions
- 4. Linq (MIN MAX &&)
- 5. Obtention des valeurs min et max à partir d'un tableau PHP
- 6. Générer un tableau à deux dimensions via LINQ
- 7. Tri tableau à deux dimensions dans AS3
- 8. écriture tableau à deux dimensions pour classer et lire tableau à deux dimensions de fichier en utilisant Visual C++
- 9. randomise un tableau à deux dimensions?
- 10. Aborder un seul tableau de pointeur dimensions à deux dimensions
- 11. Enregistrement de sons à l'aide d'un tableau à deux dimensions
- 12. C++ - Tableau à deux dimensions vectoriel d'objets
- 13. Problème du curseur jQuery atteignant les valeurs min et max
- 14. Meilleur moyen de trouver max et min de deux valeurs
- 15. PHP à deux dimensions Tableau Associatif implosent
- 16. json_encode sur un tableau à deux dimensions
- 17. trouver min et max
- 18. MYSQL MAX et min QUERY
- 19. Convertir un tableau à deux dimensions
- 20. Récupère des éléments adjacents dans un tableau à deux dimensions?
- 21. Matlab - impression de sous-tableau tableau à deux dimensions
- 22. php max() et min() sur un tableau associatif
- 23. Max et Min Temps requête
- 24. Charger un tableau à deux dimensions à partir de la requête LINQ?
- 25. Tableau unique en tableau à deux dimensions en PHP
- 26. Essayer de joindre un tableau à deux dimensions en Javascript
- 27. lier un tableau à deux dimensions à un répéteur - erreur
- 28. SQL - Temps Max et Min entre deux champs changeants
- 29. Ajouter des chaînes à un tableau à deux dimensions
- 30. HQL Min Max, comment
Pour les futurs chercheurs, http://stackoverflow.com/a/641565 pour Jagged Arrays ie. 'int [] [] SomeArray = ...;', utilisez 'var Flattened = SomeArray.SelectMany (x => x)' qui agrège les énumérateurs. Ensuite, vous pouvez simplement faire 'Flattened.Max()' par exemple. – HodlDwon
Josh: Corrigez-moi si je me trompe, mais de la façon dont cela me semble, vous copieriez tout le tableau dans un autre tableau aplati simplement pour faire une recherche maximale, ce qui implique d'abord le surcoût de copie, puis un autre O (n) et a donc une complexité globale terrible pour un problème aussi simple. Parfois, l'élégance et la brièveté ne sont pas tout. – Tom