3

こんにちは、C#で特定の数値の特定の整数配列インデックスをチェックする方法があります。たとえば、私が働きたいと思っているのは次のとおりです。

    if(si[6] || si[7] || si[8] == 3)
     {
      MessageBox.Show("3 detected")
     }
    else
    {
     continue();
    {

明らかに、これは機能しません。これを行うためのクリーンな方法はありますか?ご覧いただきありがとうございます。

4

4 に答える 4

10
var indexes = new int[] {6, 7, 8};
if (indexes.Any(i => si[i] == 3))
{
    MessageBox.Show("3 detected")
}
于 2012-11-05T14:34:48.103 に答える
5

最も簡単なのは、3つの別々のチェックを行うことです。

if (si[6] == 3 || si[7] == 3 || si[8] == 3)
于 2012-11-05T14:32:09.883 に答える
1

paramsを使用したメソッドを使用して、これを少しすっきりさせることができます。

public static bool HasValue(int value, params int[] itemsToCheck)
{
    bool valueDetected = false;
    foreach(var item in itemsToCheck)
    {
        valueDetected |= item == value;
    }

    return valueDetected;
}

次に、次のように呼び出すことができます。

if (HasValue(3, si[6], si[7], si[8]))
{

}
于 2012-11-05T14:40:27.220 に答える
1

Array.IndexOf関数を使用して、整数のインデックスを見つけることができます。配列に整数がある場合はインデックスを返し、そうでない場合は-1を返します。

このようにint[]a = new int [] {1、2}; int c = Array.IndexOf(a、2);

于 2012-11-05T14:44:14.620 に答える