2017-07-01 2 views
0

Je ne fais que commencer par programmer en C#;Tri des variables INT C#

J'ai obtenu une liste de variables int que je veux trier et trouver le numéro 1.

int Weapon_Count1, Weapon_Count2, Weapon_Count3, Weapon_Count4, Weapon_Count5, Weapon_Count6, Weapon_Count7, Weapon_Count8, Weapon_Count9 

dois-je faire avec un tableau?

En utilisant le livre jaune de C# J'ai trouvé comment faire un tableau, mais je ne peux pas comprendre comment assigner les variables au tableau.

int [] Weapon_Count = new int [11] ; 
for (int i=0; i<11; i=i+1) 
{ 
Weapon_Count [i] = ??? ;} 

J'espère que cela est logique ..

+0

int [] armes = {Nombre d'armes1, Nombre d'armes2, Nombre d'armes3, Nombre d'armes4, Nombre d'armes5, Nombre d'armes6, Nombre d'armes7, Nombre d'armes_9]; – jdweng

Répondre

0

La meilleure façon de le faire, en supposant qu'il existe une liste finie de variables à vérifier, serait de les jeter dans un tableau temporaire et appelez soit Max() ou Min() à partir de l'espace de noms System.Linq.

int maxCount = new int[] { Weapon_Count1, Weapon_Count2, Weapon_Count3, Weapon_Count4, Weapon_Count5, Weapon_Count6, Weapon_Count7, Weapon_Count8, Weapon_Count9 }.Max(); // or .Min() 

EDIT

Si vous voulez toujours obtenir ces variables dans un tableau, je recommande d'utiliser un System.Collections.Generic.List qui a une taille dynamique et des méthodes auxiliaires tels que .Add() pour simplifier les choses. Les listes peuvent également être utilisées avec des fonctions Linq similaires à la première partie de ma réponse. Voir Dot Net Perls pour de très bons exemples sur différents types de données et fonctions C#.

EDIT 2

Comme dit @kblok, vous voulez ajouter using System.Linq; en haut de votre fichier pour accéder aux fonctions telles que Max et Min. Si vous souhaitez essayer d'utiliser le type Liste, vous devez également ajouter using System.Collections.Generic;. Si vous êtes dans Visual Studio 2017 (peut-être également 2015?), Vous pouvez saisir le type de données, puis appuyer sur Ctrl + . pour obtenir des suggestions d'espaces de noms susceptibles de contenir ce type de données.

+0

Je reçois cette erreur: Erreur CS1061: 'int []' ne contient pas de définition pour 'Max' et aucune méthode d'extension 'Max' acceptant un premier argument de type 'int []' peut être trouvée (manque-t-il un directive ou une référence d'assembly?) (CS1061) (test) –

+1

@RobJansen essayez d'ajouter 'using using System.Linq;' – hardkoded

0

S'il vous plaît laissez-moi vous expliquer comment utiliser un C# -array.

Cela crée un entier-gamme avec 5 éléments non initialisée:

int[] a1= new int[5]; 

Attribution de valeurs 9,8,7,6 et 5:

(S'il vous plaît noter que seuls les indices de 0 à 4 peuvent être . Index utilisé 5 n'est pas valide)

a1[0]=9; 
a1[1]=8; 
a1[2]=7; 
a1[3]=6; 
a1[4]=5; 

La même chose peut atteindre avec une seule ligne.

int[] a1= new int[] {9,8,7,6,5}; 
0

Cela pourrait vous aider.

 // Declaring the array 
     int[] Weapon_Count; 

     // Initializing the array with a size of 11 
     Weapon_Count = new int[11]; 

     // Adding values to the array 
     for (int i = 0; i < Weapon_Count.Length; i++) 
     { 
      Weapon_Count[i] = i + 100; 
     } 

     // Printing the values in the array 
     for (int i = 0; i < Weapon_Count.Length; i++) 
     { 
      Console.WriteLine(Weapon_Count[i]); 
     } 


     // Same thing with a list 
     // Daclare and initializing the List of integers 
     List<int> weapon_list = new List<int>(); 

     // Adding some values 
     weapon_list.Add(1); 
     weapon_list.Add(2); 
     weapon_list.Add(3); 
     weapon_list.Add(4); 
     weapon_list.Add(5); 

     // Printing weapin_list's values 
     for (int i = 0; i < weapon_list.Count; i++) 
     { 
      Console.WriteLine(weapon_list[i]); 
     } 

     // This is just for the console to wait when you are in debug mode. 
     Console.ReadKey(); 

Ne pas oublier d'inclure l'utilisation de statment si vous voulez utiliser des listes (en main courte - tableaux dynamiques qui peuvent changer la taille.)

using System.Collections.Generic; 
0

Avant de commencer, vous pouvez modifier votre tableau pour ressembler à ceci:

int[] weapons = { Weapon_Count1, Weapon_Count2, Weapon_Count3, Weapon_Count4, Weapon_Count5, Weapon_Count6, Weapon_Count7, Weapon_Count8, Weapon_Count9 }; 

Cela signifie que vous avez créé un tableau des armes appelées et qu'il détient des valeurs entières. Après avoir fait cela, permet de trouver quel élément dans votre tableau a la valeur du numéro un. Pour trouver quelle valeur a la valeur "1", nous devons regarder chaque élément dans le tableau, et nous pourrions le faire de plusieurs façons, mais je voudrais recommander foreach ou for loop, dans ce cas je vais choisir foreach loop.

foreach(var item in weapons) 
{ 
    if (item == 1) 
    //Do something 
} 

Ce moyen ci-dessus, la boucle throught tous mes éléments, et dans le cas où certains d'entre eux est égal au numéro un s'il vous plaît faire quelque chose ..

PS

(je peut conseiller pour créer un variable qui va contenir un élément qui a la valeur '1' et quand vous le trouvez dans une boucle en assignant cette variable à cet élément, et plus tard vous pouvez faire ce que vous voulez avec cette variable .. et si vous pensez qu'il y aura plus d'éléments avec valeur du numéro un et vous avez besoin de tous, au lieu de la variable que j'ai mentionné ci-dessus, vous allez créer list ou un tableau pour contenir tous o Merci pour votre intérêt et si vous êtes intéressé par ce genre de solution, laissez-moi un commentaire alors laissez-moi vous aider jusqu'à la fin pour résoudre ce problème si vous le souhaitez.)

luttent toujours.