列举所有bools

时间:2016-01-07 19:18:38

标签: c# boolean ienumerable

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

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

1 个答案:

答案 0 :(得分:0)

这里有代码,比你想要的有点笨拙,但它有效:

    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();
        }
    }

更简单,如此处所示(How to get an array of all enum values in C#?):

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