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
AusgabeArtikel: Apfel Preis: 1.90
Wäre super dankbar für eine Antwort
2 Antworten
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
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.
...
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)
Benutz lieber ein Dictionary:
http://csharp.net-informations.com/collection/dictionary.htm
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;
}