C# Index eines Arrays abfragen

Guten Abend!

ich habe in meinem Programm eine for-Schleife. Diese will ich in eine If-Abfrage packen in der abgefragt wird, ob i = 0 ist

i ist die Schleifenvariable.

if (array[i] == array[0])
{
for(int i; i

Sorry, aber ich verstehe Deine Frage überhaupt nicht und auch den Code nicht. Wenn i Deine Schleifenvariable ist, warum steht i dann außerhalb der Schleife in der if-Bedingung?

Was also willst Du tun? Willst Du wissen, wie viele Elemente Dein Array hat? Willst Du über alle Element Deines Arrays laufen?

Das Problem hat sich gerade geklärt

Danke trotzdem für die Hilfbereitschaft

Hallo LixL,

das wird so nicht funktionieren. Die Variable i ist so, wie du es kodiert hast, für das Array in der ersten Zeile gar nicht bekannt (du deklarierst die Variable erst eine Zeile darunter in der Schleife: int i)

Grüßle, Franzi

so richtig verstehe ich nicht, was Du meinst!
Wenn Du i abfragen willst, weil das null-te
Feldelement irgendwie anders behandelt werden
soll, muss die if-Anweisung innerhalb der
for-Schleife stehen, also etwa so:

for(i=0; i

warum schreibst du dann nicht einfach
if (i == 0)

Das Codesegment von Dir hat noch mehr Fehler, zum einen führt die for Schleife nichts aus (der Compiler wird dich evtl. darauf hinweisen, da du auch kein ; gesetzt hast.

Zum anderen ist es dem „guten“ Compiler zu danken, wenn er in der for Schleife dein int i sauber mit 0 initialisierst (mit dem du zusätzlich das i aus der if überdeckst).

Beispiel:
wäre das i in der if (i == 0) tätsächlich 0, und der Compiler initialisiert dir dein for (int i; …) nicht (bei c ist dem so) würde deine Schleife eine sehr undefinierte Anzahl mal durchlaufen werden, je nachdem mit was i (neu) initialisiert wird.

besser wäre es das so zu lösen…
if (i == 0)
{
for (int y = 0; y

Hallo LixL,

ich habe in meinem Programm eine for-Schleife. Diese will ich
in eine If-Abfrage packen in der abgefragt wird, ob i = 0 ist

i ist die Schleifenvariable.

auf welchen Wert gesetzt?

if (array[i] == array[0])
{
for(int i; i

Hallo!
Ich muss gestehen mir ist nicht ganz klar was du genau machen willst?! Willst du das Array durchlaufen? (das machst du nämlich momentan nicht!)
Momentan fragst du lediglich einmal ab ob ein Array an einer bestimmten Stelle i den gleichen Wert hat als an der Stelle Null!
Wenn das erfüllt ist wird eine Schleife 10 mal durchlaufen. (wahrscheinlich wirst du beim compilieren sogar einen Fehler erhalten da du i nicht initialisierst).
Bei deiner Realisierung hat das i vom Array i nichts mit dem i der Schleife zu tun, weil du in der Schleife durch das „int i“ einen neue Variable anlegst die nur in dem Scope der for Schleife gilt! Ein Scope ist immer der Bereich zwischen zwei geschwungenen Klammern

also so:
void main(){ //Beginn erster scope

//anlegen von i + Initialisierung
int i=0;

//hier gilt i des Array welches in diesem Scope angelgt wurde

for(int i = 0; i

Hallo Lixl
Leider verstehe ich nicht was Du prüfen willst und für was dann die for-schleife da ist. Außerdem bekommst Du in diesen Fall eh ein falsches Ergebnis, da Du die Variable i in der For Schleife nochmals initialisierst diese Variable gilt dann nur in der For-Schleife und hat mit

if (array[i] == barray[0])

nichts zu tun. Da ich nicht genau weiß was Du tun willst hier nur ein Tip für eine mögliche Abfrage eines Arrays in einer For-Schleife

for (int i = 0; i

Hallo Lixl,
ich programmiere zwar eher C/C++ aber für Deinen Fall sollten meine Kenntnisse ausreichen:

Du deklarierst i nachdem Du es nutzt.

bool arrayHatWerteUngleichNull = false;
for (int i; i

Ahoi,

du benutzt (laut deinem Beispiel oben) die i-Variable in deiner if-Abfrage, bevor du sie (erst in der Schleife) eingeführt und ihr ein Wert zugewiesen hast. Das ist das Problem.

eine andere Frage: Was willst du jetzt überprüfen - ob der i = 0 – oder ob array[i] == array[0]? Das macht ja n unterschied.

Ich würde es so machen:

for(int i=0;i

Salve,

nein, leider versteht man nicht so recht, was du denn haben moechtest.

IdR verwendet man for Schleifen (C/C++/C+) so

int i;
for(i=0; i 

Wo bei dir der Unterschied zwischen "i bei 0" und "i gleich 0" ist, verstehe ich in diesem Zusammenhang nicht.

Gruss
norsemanna

PS
C++ und, so glaube ich auch C#, haben die Option, die Schleife auch als


    
    for(int i=0; i 
    zu schreiben.

Hallo LixL!

Ich bin leider kein C#-Profi und möchte Dich auf folgenden Link verweisen, der Dir vielleicht weiterhilft:
http://msdn.microsoft.com/de-de/library/system.array…

VG Volkmar

Hallo

Ich habe mich nie für C# als Experte deklariert. Verstehen ich nicht, warum Du mich da anschreibst.

Martin