Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
int-Werte innerhalb einer Liste vergleichen
GokiLoki
myCSharp.de - Member



Dabei seit:
Beiträge: 3

Themenstarter:

int-Werte innerhalb einer Liste vergleichen

beantworten | zitieren | melden

Hallo.

Ich wollte fragen, ob man Integer innerhalb einer List miteinander vergleichen kann, wenn ich neue Integer durch immer die selbe Variable hinzugebe.
Beispiel:

List<int> Zahlen = new List<int>();


public void Liste()
{
int X = rand.Next(0, 10);
for(int i=0; i<5; i++)
{
Zahlen.Add(X);
}
}  


Ich will dann z.B. vergleichen ob es 2 Zahlen in der Liste gibt, die nacheinander kommen (also 1 & 2 oder 7 & 8).

Wenn jemand dazu passenden Code oder ne Idee hat wäre ich sehr Dankbar.
private Nachricht | Beiträge des Benutzers
Gimmick
myCSharp.de - Member



Dabei seit:
Beiträge: 152

beantworten | zitieren | melden

Vergleich einfach für den Fall, dass die Liste schon eine Zahl enthält, die neue Zahl, mit der letzten Zahl der Liste.

Abgesehen davon ist in dem Schnipsel X innerhalb der Schleife immer gleich, soll das so?
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Gimmick am .
private Nachricht | Beiträge des Benutzers
GokiLoki
myCSharp.de - Member



Dabei seit:
Beiträge: 3

Themenstarter:

beantworten | zitieren | melden

Ne, das hab ich falsch gesetzt, sollte ja in der for-Schleife sein. Aber wie würde denn der Code aussehen für so ne Abfrage?
private Nachricht | Beiträge des Benutzers
Yankyy02
myCSharp.de - Member



Dabei seit:
Beiträge: 10

beantworten | zitieren | melden

Die Liste hat eine Methode Contains welche du verwenden kannst um zu prüfen ob die Zahl bereits in der Liste vorhanden ist.


for (int i = 0; i < 5; i++)
     {
          int X = rand.Next(0, 10);
          if (Zahlen.Contains(X))
                return;
          Zahlen.Add(X);
     }
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16.304

beantworten | zitieren | melden

Naja, musst Dir halt im Schleifenvorgang immer den Vorgänger merken.
Mal es Dir auf Papier auf und programmiert einfach Deine Anforderung ab.


int? preVal= null;
int[] zahlen = ...

foreach(var zahl in zahlen)
{
   if(preVal == zahl)
        // gleiche Zahl.... hier halt zB auf zahl -1 prüfen... steht Dir frei.

  preVal =zahl; // vorgänger merken
}

Ich mach Dir bewusst nicht den fertigen Code, weil das Forum nicht dazu da ist, Deine Hausaufgaben als fertigen Code zu liefern.
Sollst schon selbst was tun.

PS: auch Du bist herzlichst dazu eingeladen Dich an [Hinweis] Wie poste ich richtig? zu halten und Code Tags zu verwenden.
Niemand, wirklich niemand will Quellcode als reingeklatschten Plaintext lesen. Habs mal grob für Dich hinzugefügt...

@Yankyy02: Dein Code prüft auf Duplikate an allen Stellen; nicht auf nacheinander.
private Nachricht | Beiträge des Benutzers
Yankyy02
myCSharp.de - Member



Dabei seit:
Beiträge: 10

beantworten | zitieren | melden

..... sorry mein Fehler ..... das kommt dabei heraus wenn man die Fragestellung nur überfliegt.
private Nachricht | Beiträge des Benutzers