using System.Linq.Expressions;
using System.Threading.Tasks;
using System.Collections.Generic;
public static void Main(string[] args)
foreach(var a in GetAnimals(7))
public static IEnumerable<Animals> GetAnimals(int i)
var animals = (Animals) i;
foreach (Enum value in Enum.GetValues(animals.GetType()))
if (animals.HasFlag(value))
yield return (Animals) value;