2016-12-05 12 views
1

ユーザーの入力を制限したいので、入力できるのは28,29,30または31のみです。ユーザー入力を制限する方法は?

入力が有効な日付/時刻の配列であるかどうかを確認する方法があることは知っています。日。誰かが私に説明をして、どうすれば小切手をすることができますか?例えばもし

INT []日=新しいINT [4] {28、29、30、31}。

は、どのように私は何のユーザ入力は、アレイ内にあるかどうかをチェックします検証を行うことができますか?どのような条件を設定する必要がありますか?私はそのタイプの検証を書く方法を知らないので、表示するコードはありません。それを行う方法がない場合、どのようにしてこれらの4つの数字だけに制限するif文を持つユーザを制限できますか?

私のコードは、これまでのようになります。

int GetDaysInMonth() 
    { 
     const int MinDaysInMonth = 28; 
     const int MaxDaysInMonth = 31; 

     Console.WriteLine("How many days there are in your chosen month? [it needs to be 28, 30 or 31]"); 
     userInput = Console.ReadLine(); 

     while (!int.TryParse(userInput, out daysInMonth) || daysInMonth > MaxDaysInMonth || daysInMonth < MinDaysInMonth) 
     { 
      Console.WriteLine("Wrong input! Remember it needs to be 28, 30 or 31"); 
      userInput = Console.ReadLine(); 
     } 
     Console.WriteLine(); 
     return daysInMonth; 
    } 

おかげ

+4

あなたは上の入力を制限しようとしていることをどのようなコードを持っていますか?これはコンソールアプリ用ですか? Webアプリケーション? Winformsアプリ? – MattD

+0

コンソールアプリケーション – Xarels

+0

私は上記のように検証したいコードを追加しました。 – Xarels

答えて

2

を使用すると、入力は、あなたが.Contains()メソッドを使用することができ、有効な入力の配列であるかどうかを確認しようとしている場合。

public static bool IsValid(int input, int[] validInputs) 
{ 
    return validInputs.Contains(input); 
} 

あなたは以下のようにそれを使用することができます。

int input = 28; 
int[] validInputs = new[] { 28, 29, 30, 31 }; 

bool result = IsValid(input, validInputs); //result is `true` 
+0

私はそれを持って、ありがとう。 – Xarels

関連する問題