4

私はこれを持っています:

if (input.Text.ToUpper() == "STOP")

しかし、次のようにすべてを個別に指定することはできないほど多くの可能な値があります。

if (input.Text.ToUpper() == "STOP" || input.Text.ToUpper() == "END")

あなたがこのようなことをすることができる方法はありますか?

if (input.Text.ToUpper() == "STOP", "END", "NO", "YES")

STOP、END、NO、またはYESを使用すると、タスクが実行されますか?

いずれかの包含を使用しても機能しません。それ以外の場合、受け入れられた単語にはSTOPおよびENDという単語が含まれます。

4

7 に答える 7

16

Enumerable.Contains配列や次のようなコレクションを使用できます。

var words = new[]{ "STOP", "END", "NO", "YES" };
if(words.Contains(input.Text.ToUpper()))
{
     // ...      
}
于 2012-08-04T22:43:48.650 に答える
4

できるよ...

if(new[]{ "STOP", "END", "NO", "YES" }.Contains(input.Text.ToUpper()))
于 2012-08-04T22:43:59.553 に答える
1

可能な単語の配列を保持し、それをContainsメソッドと照合できます。

string[] validInput = new string[] { "STOP", "END", "NO", "YES" };

// input is the input you have
if (validInput.Contains(input.Text.ToUpper()))
{
    // Do something
}
于 2012-08-04T22:44:26.430 に答える
0
        var tasks = new List<string> { "STOP", "END", "NO", "YES" };
        tasks.Contains(input.Text.ToUpper());

見た目が良くなる

        var tasks = new List<string> { "stop", "end", "no", "yes" };
        tasks.Exists(x => string.Equals(x, input.Text, StringComparison.OrdinalIgnoreCase));
于 2012-08-04T22:45:51.503 に答える
0

LINQ を使用してこれを行うことができます。そうすれば、文字列に STOP と END の両方がある場合、両方で取得されます。

var myStringArray= new[]{ "STOP", "END", "NO", "YES" };
var query = myString.Any(x => myStringArray.Contains(x));
于 2012-08-04T22:52:11.210 に答える