2016-05-10 5 views
0

Ich habe eine Liste von 10 Elementen.Wie bekomme ich meine If else Schleife Schleife durch ein Array C#. NET

Wenn ein Benutzer einen Wert in "listText" eingibt, wird er mit dem ersten Element in displayArraysString verglichen.

sagen Läßt es ist nicht das erste Element in der displayArraysString Liste, es tut dann nichts tun (weil ich eine Schleife nicht)

Wie erstelle ich eine Schleife, die durch meine Liste überprüfen und die messagebox Anzeige einmal es findet es. Ich versuchte es mit einer Fangschleife, aber das funktionierte nicht für mich.

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace Arrays 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 
     int[] numbers = new int[5]; 
     List<int> numbersList = new List<int>(); 
     string text = System.IO.File.ReadAllText(@"C:Directory\list.txt"); 

     private void Form1_Load(object sender, EventArgs e) 
     { 
      //numbers[0] = 12; 
      //numbers[1] = 10; 
      //numbers[2] = 25; 
      //numbers[3] = 10; 
      //numbers[4] = 15; 
      //numbersList.Add(23); 
      //numbersList.Add(32); 
      //numbersList.Add(35); 
     } 
     //Array Print 
     private void button1_Click(object sender, EventArgs e) 
     { 
      for (int i = 0; i < numbers.Length; i++) 
      displayArrays.Text += numbers[i].ToString() + ", "; 
     } 
     //List Print 
     private void button2_Click(object sender, EventArgs e) 
     { 
      for (int o = 0; o < text.Length; o++) 
      { 
       displayArraysString.Text += text[o].ToString(); 

       if (listText.Text == displayArraysString.Text) 
       { 
        MessageBox.Show("Found a match!"); 

       } 
       else 
       { 
        //Something. 
       } 




      } 
     } 
    } 
} 

enter image description here

enter image description here

+0

Was ist falsch an Ihrer button2 click Methode? Wie funktioniert es nicht, hast du versucht es zu debuggen? – BugFinder

+0

Was ist der Typ von "DisplayArrays" und "DisplayArraysString" –

+0

Meine schlechten Leute! Es funktioniert, das ist die Sache, aber es sucht nur nach dem ersten in der Liste, wenn die Textdatei. Lass mich Demo! werde meine Frage aktualisieren –

Antwort

1

Sie sind hier etwas nicht in Ordnung versuchen, als Datei, die Sie aus dem Pfad in String gelesen haben, wird es ein einzelnes Zeichen für listText übereinstimmen, so wird es sein nie eine Übereinstimmung, Ich habe es mit String-Array, um die Textdaten in String-Array von jedem Wort darin zu konvertieren. Wenn Sie jetzt suchen, wird die Übereinstimmung für listText gefunden.

versuchen diesen Code:

 namespace Arrays 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 
     int[] numbers = new int[5]; 
     List<int> numbersList = new List<int>(); 
     string text = System.IO.File.ReadAllText.Text(@"C:\Directory\list.txt"); 
     string[] displayStringArrays = null; 

     private void Form1_Load(object sender, EventArgs e) 
     { 
      //numbers[0] = 12; 
      //numbers[1] = 10; 
      //numbers[2] = 25; 
      //numbers[3] = 10; 
      //numbers[4] = 15; 
      //numbersList.Add(23); 
      //numbersList.Add(32); 
      //numbersList.Add(35); 
     } 
     //Array Print 
     private void button1_Click(object sender, EventArgs e) 
     { 
      displayArrays.Text = listText.Text; 
     } 
     //List Print 
     private void button2_Click(object sender, EventArgs e) 
     { 
      displayStringArrays = text.Split('\n').ToArray(); 
      foreach (var item in displayStringArrays) 
      { 
       displayArraysString.Text += item; 

       if (listText.Text == item.Substring(0, item.Length - 1) || listText.Text == item) 
       { 
        MessageBox.Show("Found a match!"); 
       } 
       else 
       { 
        //Something. 
       } 
      } 

     } 
    } 
} 

diesen Code mit Ihrem Code ersetzen. Ich habe überprüft, dass es jetzt gut funktioniert.

+0

Wie Sie in meinem gif sehen können funktioniert es Ich muss es nur durch die anderen 9 Elemente in meinem Textdokument durchlaufen –

+0

Es funktioniert nicht, wie Sie sehen, es liest ein einzelnes Zeichen aus der Datei und zeigt es in der Textbox, aber Sie vergleichen es mit dem ganzen Wort, das nie ein Match sein wird, versuchen Sie meinen Code, es wird arbeiten. – sumngh

+0

wenn das nicht funktioniert ersetzen ** Split ('') ** mit ** Split ('\ n') ** dann wird es funktionieren. – sumngh