文字を入力のみとし、重複しないプログラムを作成しようとしています。入力に1文字入力するとエラーになります。 これは私が何をする必要があるのですか、私は、入力行や入力などの各行にユーザ入力を必要とします。もし重複値があれば、エラーメッセージが必要です。間違った値です。そのようなエラーが表示されます。私はLINQ、Hashset、またはリストを使用することはできません。配列でなければなりません。C#別の行に入力が必要です
static void Main(string[] args)
{
char[] Array = new char[5];
Console.WriteLine("Please Enter 5 Letters B/W a through j only: ");
string letters = "abcdefghij";
char[] read = Console.ReadLine().ToLower().ToCharArray();
//loop through array
for (int i = 0; i < 5; i++)
{
if (letters.Contains(read[i]) && !Array.Contains(read[i]))
{
Array[i] = read[i];
}
else
{
Console.WriteLine("You have entered an incorrect value");
}
}
Console.WriteLine("You have Entered the following Inputs: ");
for (int i = 0; i < Array.Length; i++)
{
Console.WriteLine(Array[i]);
}
Console.ReadKey();
}
あなたの考えは5文字を連続して取得することですか?考えられる解決策の1つは、do.whileループでConsole.ReadLineをラップすることです。ユーザーからの入力ごとに入力をループして、有効なエントリがないかどうかを確認できます。それぞれの文字のループ内で5文字をループし、それらをハッシュセットに追加すると、一意の値のみを許可するハッシュセット、ハッシュセットは5つの要素を持つ必要があります。ユーザに有効な文字の組を入力させる。検証後、ループから抜け出してユーザー入力を処理することができます。 – rmjoia
実際にはContains()はLinq拡張です。 – derloopkat
[C#で特殊文字や数字を使わずに文字(az)のみでユーザー入力を要求する方法](http://stackoverflow.com/questions/36191717/how-to-ask-for-user-input- with-letters-az-only-without-special-characters-or) –