2016-10-30 1 views
-5

Okay donc oui je fais des devoirs et je suis si proche sur celui-ci je le sais, mais je suis en train de jouer avec lui pendant plus d'une heure et maintenant je deviens fou, si Je prends la boucle sur mon programme va lire le fichier et dire la météo que vous avez passé, mais il n'écrira pas les mauvaises réponses dans la liste, si je mets dans mon code foreach, il me donne une erreur de syntaxe. c'est mon code actuel.foreach boucle erreur de syntaxe C# Visual Studio 2013 ultime

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; 
using System.IO; 

namespace DriversLicenseExam 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      string[] answerArray ={"B","D","A","A","C", 
            "A", "B","A","C","D", 
            "B", "C","D","A","D", 
            "C", "C","B","D","A"}; 
      string[] studentansArray = new string[20]; 

      List<string> incorrectList = new List<string>(); 

      int count = 0, index = 0, qnumber = 0; 
      try 
      { 
       string filename = "../../" + filenametxt.Text; 
       StreamReader inputFile = File.OpenText(filename); 
       while(!inputFile.EndOfStream) 
       { 
        studentansArray[index] = inputFile.ReadLine(); 
        if (studentansArray[index] == answerArray[index]) 
         count++; 
        else 
        { 
         qnumber = index + 1; 
          incorrectList.Add(qnumber.ToString()); 
        } 
        index++; 
       } 
       inputFile.Close(); 
       if (count >= 15) 
       { 
        resultoutput.Text = "You Passed The Test!"; 
       } 
       else 
        resultoutput.Text = "You Failed The Test... You're a Failure!"; 
      } 
      foreach (string str in incorrectList) // <<-- error is here 
      { 
       lbox.Items.Add(str); 
      }          // <<-- error is here 
      catch (Exception) 
      { 
       MessageBox.Show("File Not Found"); 
      } 
     } 

     private void button2_Click(object sender, EventArgs e) 
     { 
      filenametxt.Text = ""; 
      resultoutput.Text = ""; 
      lbox.Items.Clear(); 
     } 

     private void exitbutton_Click(object sender, EventArgs e) 
     { 
      this.Close(); 
     } 
    } 
} 
+0

je ne vois pas une question nulle part ici .. –

+2

Vous ne pouvez pas mettre 'foreach' entre un bloc' try' et un bloc 'catch'. Il doit être _inside_ le bloc try. – CodeCaster

+1

Quelle est l'erreur que vous obtenez? –

Répondre

0

Je ne suis pas sûr à 100%, mais votre foreach est entre votre essai et bloc catch, essayez peut-être avec ce que:

try 
{ 
    string filename = "../../" + filenametxt.Text; 
    StreamReader inputFile = File.OpenText(filename); 
    while(!inputFile.EndOfStream) 
    { 
     studentansArray[index] = inputFile.ReadLine(); 
     if (studentansArray[index] == answerArray[index]) 
      count++; 
     else 
     { 
      qnumber = index + 1; 
      incorrectList.Add(qnumber.ToString()); 
     } 
     index++; 
    } 
    inputFile.Close(); 
    if (count >= 15) 
    { 
     resultoutput.Text = "You Passed The Test!"; 
    } 
    else 
     resultoutput.Text = "You Failed The Test... You're a Failure!"; 
    foreach (string str in incorrectList) 
    { 
     lbox.Items.Add(str); 
    } 
} 
catch (Exception) 
{ 
    MessageBox.Show("File Not Found"); 
} 
+0

Ceci est correct, merci beaucoup !! – Chris