枚举所有布尔

本文关键字:布尔 枚举 | 更新日期: 2023-09-27 18:29:20

自己做这件事没什么大不了的,但我很好奇C#是否会在任何地方给我这个:

public static IEnumerable<bool> AllBools {
  get {
    yield return false;
    yield return true;
  }
}

枚举所有布尔

这是代码,可能比您想要的有点笨拙,但它可以工作:

    public static IEnumerable<bool> BoolValues {
        get {
            return new bool[]{true, false};
        }
    }

编辑:如果你想让代码枚举枚举的所有值(这会更有用,imo),这里还有代码:

    public enum TrueOrFalse
    {
        True,
        False
    }
    public static IEnumerable<TrueOrFalse> BoolValues {
        get {
            List<TrueOrFalse> allValues = new List<TrueOrFalse>();
            foreach (var value in Enum.GetValues(typeof(TrueOrFalse))){
                allValues.Add((TrueOrFalse)(value));
            }
            return allValues.AsEnumerable();
        }
    }

更简单的是,如下所示(如何在C#中获得所有枚举值的数组?):

 List<TrueOrFalse> valuesAsList =  Enum.GetValues(typeof(TrueOrFalse)).Cast<TrueOrFalse>().ToList();