C# 遍历 bool 值

标签 c# for-loop boolean

在 C# 中是否有一种简洁的方法来循环 true/false?

我在单元测试中有大约 20 行代码,我宁愿不复制来切换一个 boolean 值 true/false。

我可以将它分解成一个函数并调用它两次,但是嗯。这段代码感觉更像是我在迭代可能的值,而不是使用不同的参数执行不同的操作。即使我有一个函数,我也更喜欢循环遍历可能值的语法,而不是只调用它两次。

我可以像这样写一个for循环...

bool toggle;
for (int i = 0; i < 2; i++)
{
    toggle = i == 1;
}

但这看起来不是很干净。

我喜欢this syntax :

for (bool b : { false, true }) { /* ... */ }

但它看起来不会在 C# 中编译。

编辑:

根据 Jeroen 关于本地函数的建议和 Dmitry 的回答,这是我走的路线:

[TestMethod]
public void GetAndSetValue()
{
    foreach (bool toggle in new [] { false, true })
    {
        GetAndSetValue(toggle);
    }

    void GetAndSetValue(bool toggle)
    {
        // details not important
    }
}

合理的编码人员可以争论循环是否比两个函数调用更容易读取:

GetAndSetValue(false);
GetAndSetValue(true);

我更喜欢这个循环,所以我会继续使用它直到有人提示为止。干杯!

最佳答案

正确的语法是foreach,而不是for:

foreach (bool b in new [] { false, true }) {
   /* ... */
}

关于C# 遍历 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51175996/

相关文章:

java - 使用 java.util.Arrays 时程序不会运行——可能出了什么问题?

c# - 如何在 C# 控制台应用程序中设置出站/发送 IP 地址?

iphone - UIScrollView 上具有垂直间距的动态 UIButton

javascript - JS - 将函数插入数组并为其命名

c# - 除了 for 循环之外,还有另一种方法可以一次取 N 吗?

c# - 用 boolean 值做 fuse

c# - 在不使用 C# 和线程打开图像的情况下获取 Jpg 宽度和高度的最快方法

c# - 如何将字符数组转换为字符串数组?

c# - SQL Azure Federation 和 EF Code First 数据库生成?

java - 数组和 boolean JAVA