Ich habe mit diesem Code für eine Weile gekämpft, ich kann nicht herausfinden, wo ich falsch liege. Grundsätzlich möchte ich ein Array mit einem Integer durchsuchen und wenn es mit einem Element in diesem Array übereinstimmt, gibt es eine Bool-Variante als wahr zurück. Es ist ziemlich selbsterklärend, aber kann nicht für das Leben von mir herausfinden! Irgendwelche Ideen?Probleme mit meinem Code bei der Suche nach einem Element eines Arrays in C#
Hier ist der Code;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ArrayProject
{
class ArrayProgram
{
public bool ElementAt(int[] intArray, int valueToBeFound)
{
bool intAt = false;
int numberTofind;
Console.WriteLine("Please enter the number you wish to search for within the array: ");
numberTofind = Convert.ToInt32(Console.ReadLine());
foreach (int x in intArray)
{
if (x == numberTofind)
{
intAt = true;
}
else
{
intAt = false;
}
}
if (intAt == true)
{
Console.WriteLine("{0} is in the array!", numberTofind);
}
else
{
Console.WriteLine("{0} is not in the array.", numberTofind);
}
return intAt;
}
public void RunProgram()
{
int[] intArray = { 20, 30, 40, 50, 60, 50, 40, 30, 20, 10 };
int numberTofind = 0;
ElementAt(intArray, numberTofind);
} // end RunProgram()
static void Main(string[] args)
{
ArrayProgram myArrayProgram = new ArrayProgram();
myArrayProgram.RunProgram();
Console.WriteLine("\n\n===============================");
Console.WriteLine("ArrayProgram: Press any key to finish");
Console.ReadKey();
}
}
}
Was gibt der Code zurück? was erwartest du zu passieren? Ich könnte vorschlagen, die Schleife zu verlassen, wenn Sie Ihre Nummer finden .... –
Was William Suggests ist richtig. Ich glaube nicht, dass Sie den richtigen Rückgabewert erhalten, weil die foreach-Schleife fortfährt, anstatt entweder zurückzukehren oder aus Ihrer Schleife auszubrechen. Es gibt auch die Contains und IndexOf, die Dmitriy erwähnt hat, die diese Berechnung für Sie tun werden. –
Verwenden Sie eine Liste anstelle eines Arrays. Liste hat mehr Funktionalität: Liste IntArray = neue Liste () {20, 30, 40, 50, 60, 50, 40, 30, 20, 10}; int index = intArray.IndexOf (60); –
jdweng