Frage von DerEidgenosse, 32

C# In Array nach einem Wort suchen?

Hey

Ich muss in einem eindimensionalen Array welches auf 10 Stellen begrenzt ist nach einem Wort suchen. Was muss ich schreiben um in meinem Array zum Beispiel { Apfel, Banane, Orange} Nach Orange suchen zu können dass es mir dann Den Namen Zurückgibt und den Preis dazu? Der Preis ist auch in einem eindimensionalen auf 10 Stellen begrenztes Array. Das Ganze möchte ich in einer Funktion machen. Es soll dann so aussehen: Suchbegriff eingeben: Apfel

Ausgabe

Artikel: Apfel Preis: 1.90

Wäre super dankbar für eine Antwort

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von sssssss, 20

string[] fruits = new string[9];
float[] prices = new float[9];

string input = "orange";

for (int i = 0; i < fruits.Length; i++)
{
if(input == fruits[i])
{
Was auch immer du dann machen willst
}
}


sorry lies im kommentar

Kommentar von sssssss ,

Ich hab was falsch gelesen das ganze kommt gleich, Sorry :D


static void Main(string[] args)
{
string[] fruits = new string[10] {"Orange", "Apfel", "Erdnuss", "Apfel", "Banane", "Orange", "Erdnuss", "Banane","Kiwi", "Orange"};
float[] prices = new float[10] {1.90f, 1.80f , 1f, 1.80f, 1.50f, 1.90f, 1f, 1.50f, 2f, 1.90f};

string input = "Orange";

float R = Rückgabe(fruits, prices, input);

Console.WriteLine(R);
Console.ReadKey();



}
static float Rückgabe(string[]fruits, float[]prices, string input)
{
float price = 0;

for (int i = 0; i < fruits.Length; i++)
{
if(input == fruits[i])
{
price = prices[i];

return price;
}
}

return price;
}

Kommentar von DerEidgenosse ,

Danke vielmal mir ist ein kleines Lämpchen aufgeleuchtet :D

Aber ich habe noch eine Frage :)

Danke im Voraus!

Ich habe jetzt das ganze so gemacht, dass wenn es keinen passenden Artikel hat es ausgibt: keine Artikel gefunden. Jedoch tut es das jetzt 9 mal ausgeben (Das 1. Mal wird es ja richtig angezeigt also eigentlich macht die Schleife das 10 mal). Wie stoppt die Schleife?

Das selbe Problem habe ich bei einer anderen Funktion wo es alle Früchte auflisten soll.

Ich habe gedacht ich könnte schreiben:

for (int i = 0; i <= früchtearray.Length; i++)

Aber das funktioniert dann leider nicht.

So siehst aus wenn ich nach dem Apfel suche:

Frucht: Apfel     Preis: 1.5
Keine Artikel gefunden.
Keine Artikel gefunden.
Keine Artikel gefunden.
Keine Artikel gefunden.
...
Kommentar von Copyyy ,

Irgendwas ist bei dir im Code falsch. Wenn du wirklich i <= früchtearray.Length hast, bekommst du, aus wohl offensichtlichen Gründen, eine IndexOutOfRangeException (wenn du es "richtig" machst)

Kommentar von sssssss ,

Mach eine if Abfrage mit einem Bool wert der auf False gesetzt wird sobald das erste abgelaufen ist

Kommentar von sssssss ,

Ich bekommen keinen Fehler -_-

Antwort
von Copyyy, 19

Benutz lieber ein Dictionary:

http://csharp.net-informations.com/collection/dictionary.htm

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten