以下は、いくつかのエラーを作成しています。つまり、「B」は認識されません(他の20文字と「ファイル」も認識されません)。
ここに問題が見えませんか?
string[] correctAnswers = {B,D,A,A,C,A,B,A,C,D,B,C,D,A,D,C,C,B,D,A};
string[] studentResults = File.ReadAllLines("studentResults.txt");
ありがとうございました
それらを二重引用符で囲む必要があります。
string[] correctAnswers = {"B","D","A","A","C","A","B","A","C","D","B","C","D","A","D","C","C","B","D","A"};
編集 :
(@goldenparrotに感謝)この名前空間を追加する必要があります:
using System.IO;
File.ReadAllLines()を使用できるようにします。それまたは:
string[] studentResults = System.IO.File.ReadAllLines("studentResults.txt");
const string A = "A";
const string B = "B";
const string C = "C";
const string D = "D";
string[] correctAnswers = { B, D, A, A, C, A, B, A, C, D, B, C, D, A, D, C, C, B, D, A };
他の人が言っているように、文字列リテラルは二重引用符で囲む必要があります。
ここで、文字の配列を維持する場合は、文字列も反復可能であるため、文字列の配列ではなく単純な文字列を使用するのがおそらく最善です。
string correctAnswers = "BDAACABACDBCDADCCBDA";
次に、次のようなものがあります。
foreach (char answer in correctAnswers) {
// ...
}
質問の2番目の部分に関しては、FileクラスはSystem.IO
名前空間に存在するため、ディレクティブが必要であるかusing System.IO;
、完全修飾名でそのクラスを参照する必要がありますSystem.IO.File
。
二重引用符で囲んだ文字を書き、@
ファイルのパスに使用します。
string[] correctAnswers = {"B","D","A","A","C","A","B","A","C","D","B","C","D","A","D","C","C","B","D","A"};
string[] studentResults = File.ReadAllLines(@"studentResults.txt");
の配列がありstring
ます。ご存知のように(またはそうではない)、文字列は二重引用符で囲まれています-""。したがって、問題では、string[]は次のようになります。
string[] correctAnswers = {"B","D","A","A","C","A","B","A","C","D","B","C","D","A","D","C","C","B","D","A"};