2017-07-01 9 views
0

Ich beginne gerade mit der Programmierung in C#;Sortieren von INT-Variablen C#

bekam ich eine Liste von int-Variablen, die ich sortieren möchten, und die Nummer 1.

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

mache ich das mit einem Array tun müssen, finden?

Mit dem gelben Buch von C# habe ich herausgefunden, wie man ein Array erstellt, aber ich kann nicht herausfinden, wie die Variablen dem Array zugewiesen werden.

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

Ich hoffe, das Sinn macht ..

+0

int [] Waffen = {Waffe_Zahl1, Waffenzahl2, Waffenzahl3, Waffenzahl4, Waffenzahl5, Waffenzahl6, Waffenzahl7, Waffenzahl8, Waffenzahl9}; – jdweng

Antwort

0

Der einfachste Weg, dies zu tun, vorausgesetzt, es gibt eine endliche Liste von Variablen, um zu überprüfen wäre, sie in ein temporäres Array zu werfen und rufen entweder Max() oder Min() aus dem Namespace 10.

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

Wenn Sie immer noch diese Variablen in ein Array erhalten wollen, würde ich empfehlen, ein System.Collections.Generic.List verwendet, die eine dynamische Größe und Hilfsmethoden wie .Add() hat die Dinge zu vereinfachen. Listen können auch mit Linq-Funktionen verwendet werden, die dem ersten Teil meiner Antwort ähneln. Einige sehr gute Beispiele zu verschiedenen C# -Datentypen und -Funktionen finden Sie unter Dot Net Perls.

EDIT 2

Wie @kblok sagt, sollten Sie using System.Linq; am Anfang der Datei hinzufügen Zugriff auf die Funktionen wie Max und Min zu gewinnen. Wenn Sie versuchen möchten, den Listentyp zu verwenden, müssen Sie auch using System.Collections.Generic; hinzufügen. Wenn Sie in Visual Studio 2017 sind (vielleicht auch 2015?), Können Sie den Datentyp eingeben und dann Ctrl + . drücken, um Vorschläge für Namespaces zu erhalten, die diesen Datentyp enthalten könnten.

+0

Ich bekomme diesen Fehler: Fehler CS1061: 'int []' enthält keine Definition für 'Max' und keine Erweiterungsmethode 'Max', die ein erstes Argument vom Typ 'int []' akzeptiert, könnte gefunden werden (fehlt eine Verwendung Direktive oder eine Assembly-Referenz?) (CS1061) (Test) –

+1

@RobJansen versuchen, 'using System.Linq;' hinzuzufügen – hardkoded

0

Bitte lassen Sie mich erklären, wie Sie ein C# -Array verwenden.

Dies schafft einen unitialized integer-Array mit 5 Elementen:

int[] a1= new int[5]; 

Zuweisen Werte 9,8,7,6 und 5:

(Bitte beachten Sie, dass nur Indizes von 0 bis 4 sein kann, . gebrauchter Index 5 ist nicht gültig)

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

Das gleiche kann auch mit nur einer Zeile erreicht.

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

Dies könnte Ihnen helfen.

 // 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(); 

Vergessen Sie nicht, die mit statment enthalten, wenn Sie eine Liste verwenden möchten (in kurzen Hand - dynamische Arrays, die in der Größe ändern können.

)
using System.Collections.Generic; 
0

Bevor wir beginnen, könnten Sie Ihre Array bearbeiten wie folgt aussehen:

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

Dies bedeutet, dass Sie ein Array namens Waffen erstellt haben, und es wird ganzzahlige Werte zu halten.

Nachdem Sie dies getan haben, erfahren Sie, welches Element in Ihrem Array den Wert der Nummer eins hat. Um herauszufinden, welcher Wert den Wert "1" hat, müssen wir jedes Element im Array betrachten, und zwar auf wenigen Wegen, aber ich würde gerne foreach oder for loop empfehlen, in diesem Fall wähle ich foreach loop.

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

Diese obigen Mittel, Throught Schleife alle meine Elemente, und einige von ihnen in Fall gleich eine Bitte an die Nummer etwas tun ..

PS

(Ich rate erstellen können Variable, die ein Element mit dem Wert '1' enthält, und wenn Sie es in einer Schleife finden, die diese Variable diesem Element zuweist, und später können Sie mit dieser Variablen tun, was Sie wollen .. und wenn Sie denken, dass es mehr Elemente geben wird Wert von Nummer eins, und Sie brauchen alle von ihnen, anstelle der oben genannten Variable erstellen Sie list oder Array, um alle o zu halten f Ihre Elemente und auch Sie können später mit ihnen tun, was auch immer Sie wollen.)

Vielen Dank und wenn Sie an dieser Art von Lösung interessiert sind, lassen Sie mich einen Kommentar so lassen Sie mich Ihnen bis zum Ende helfen, um dies zu lösen, wenn Sie kämpfen immer noch.