非常に C#/.Net である 1 つの方法は、ラムダ式を使用することです。配列で有効な値のリストを定義すると、これらの値のいずれかを取得するまでループします。
string myString = "";
string[] validValues = new string[] { "1", "2", "3" };
while (!validValues.Any(myString.Equals))
myString = Console.ReadLine();
以下と同等です。
string myString = "";
string[] validValues = new string[] { "1", "2", "3" };
while (!validValues.Any(s=>myString.Equals(s))
myString = Console.ReadLine();
switch (myString)
{
case "1":
Console.WriteLine("ans 1");
break;
case "2":
Console.WriteLine("ans 2");
break;
case "3":
Console.WriteLine("ans 3");
break;
}
validValues.Any
括弧内の条件がいずれかの要素を通過する場合、true を返します。Lambda 式は、引数が myString と等しいs=>myString.Equals(s)
場合に true を返す関数に似ています。を使用すると、リストの各要素に置き換えられます。s
s
Any
この場合、それ=>
以上または等しいという意味ではないことに注意することが重要です。s
これは、パラメータとして受け取り、 を返す関数/式を定義したことを意味しますmyString.Equals(s)
。それを に渡すとAny
、 が返されるまですべての要素に適用されますtrue
。どれも true を返さなかった場合は、Any
を返しfalse
ます。
ラムダ式は C# の非常に優れた機能です。慣れると、C++ などの言語よりもはるかに単純なコードを記述できるようになります。私たちのほとんどは、ボイラープレート コードを書いたり、さまざまなソースから取得したデータを操作したりすることに多くの時間を費やしているため、作業が大幅に楽になります。
ラムダ式の詳細