C# IF/Else 数组

C# IF/Else Array

我正在尝试在 C# 中创建一个简单的数组示例,它遍历数组并仅显示大于或等于 2 但小于 4 的值。

在 if 语句中,我不确定如何最好地在迭代函数中制定两部分语句。这是我的例子,它显然没有做任何事情: else if (array[i] >= 2 array[i] <4)

我要创建的完整代码:

int[] array = new int[5];

            array[0] = 1;
            array[1] = 2;
            array[2] = 3;
            array[3] = 4;
            array[4] = 5;

            for (int i = 0; i < array.Length; i++)
            {
                if (array[i] >= 4)
                {
                    Console.WriteLine(array[i]);
                }
                else if (array[i] >= 2 array[i] <4)
                {
                    Console.WriteLine(array[i]);
                }
                else
                {}

            }
            Console.ReadKey();

正在寻找有关如何最好地创建此函数的建议。

您可以在一条语句中完成:

for (int i = 0; i < array.Length; i++)
{
    if (array[i] >= 2 && array[i] < 4)
    {
        Console.WriteLine(array[i]);
    }
}

使用 conditonal AND operator (&&)

else if (array[i] >= 2 && array[i] <4)

LINQ 是你的朋友

var selected = array.Where(x => x>= 2 && x < 4);

如果你真的想要一个带有控制台 IO 的单线

array.Where(x => x>= 2 && x < 4).ToList().Foreach(x=>Console.WriteLine(x));

正如其他答案所提到的,您缺少条件 AND 运算符 (&&)。

使用它会改变你的

else if (array[i] >= 2 array[i] <4)

else if(array[i] >= 2 && array[i] < 4)

但是,您可以使用当前代码做得更好。由于您在 ifelse if 中执行 相同的操作 ,并且您正在与 int 进行连续比较(即: 2、3、4 等 return 正确)。你可以进一步简化为:

for (int i = 0; i < array.Length; i++)
{
    if(array[i] >= 2)
    {
         Console.WriteLine(array[i]);
    }
}