2017-07-23 5 views
0

J'ai un tableau 2D en C# qui ressemble à ceci:trouver nombre maximum d'une ligne dans un tableau 2D

float[,] PlayerStats = { 
    // Lap times Track A 
    { 9999.0f, 9999.0f, 9999.0f, 9999.0f, 9999.0f, 9999.0f, 9999.0f }, 
    // Lap times Track B 
    { 9999.0f, 9999.0f, 9999.0f, 9999.0f, 9999.0f, 9999.0f, 9999.0f }, 
    // Lap times Track C 
    { 9999.0f, 9999.0f, 9999.0f, 9999.0f, 9999.0f, 9999.0f, 9999.0f } 
    }; 

Maintenant après le tableau se est rempli lors de l'exécution avec d'autres valeurs, je voudrais afficher pour Par exemple, la valeur maximale des temps au tour de la piste B, mais je n'ai aucune idée de la façon de trouver la valeur maximale de la ligne 2 seulement.

Existe-t-il un moyen facile d'y parvenir?

+0

Veuillez marquer le langage de programmation que vous utilisez. –

+0

Savez-vous comment trouver la valeur maximale pour n'importe quelle rangée? Savez-vous comment trouver la valeur maximale d'un tableau à une dimension? –

+0

Je dois récupérer les coordonnées de la valeur maximale dans la deuxième rangée. – Kai

Répondre

3
var max = Enumerable.Range(0, PlayerStats.GetLength(1)).Max(i => PlayerStats[1, i]); 
+1

bonne réponse, mais une explication de ce qu'il fait serait utile. –

+0

Hm Je reçois une exception IndexOutOfRangeException. Pouvez-vous expliquer brièvement comment cela fonctionne? – Kai

+0

'Enumerable.Range' obtient une plage de nombres séquentiels de' 0' à 'PlayerStats.GetLength (1)', qui représentent les index de tous les éléments du second tableau de 'PlayerStats'. Ensuite, il regarde chaque élément en utilisant 'PlayerStats [1, i]' et obtient le Max. Donc, si vous obtenez une exception hors de portée, votre liste 'PlayerStats' ne doit contenir que 1 ou 0 tableaux (dans votre question, vous avez spécifiquement demandé le' Max' du 2e tableau). –