Editado para (con suerte claridad):
Lo que estoy buscando hacer (y no estoy seguro de si se puede hacer) está en este orden:
Si el código a continuación lo confunde, no lo deje y, en su lugar, mire los números 1 a 3.
Edit2: Esto es para C# con Target Framework .NET Framework 4.7.2, Biblioteca de clases de tipo de salida (.dll), en caso de que cambie la forma en que debe escribirse el código.
public class AreFooPresent { public static bool foo0 = false public static bool foo1 = false public static bool foo2 = false } public class AreTheyThereList { List<FooList> myList = new List<FooList> { myList.Add(new FooList(if return foo0 != false)); myList.Add(new FooList(if return foo1 != false)); myList.Add(new FooList(if return foo2 != false)); } }Otro usando linq
using System.Linq; ... var list = (new bool[] {AreFooPresent.foo0, AreFooPresent.foo1, AreFooPresent.foo2}) .Where(b => b).ToList(); Y te veo inicializando algún objeto FooList , en este caso algo como
using System.Linq; ... var list = (new bool[] {AreFooPresent.foo0, AreFooPresent.foo1, AreFooPresent.foo2}) .Where(b => b) .Select(b => new FooList(b)).ToList();bienvenido a SO! Algo simple como el siguiente código hace el trabajo. Solo se agregará a la lista SI es cierto y, como son miembros estáticos, puede hacer referencia a la clase y luego a los miembros estáticos.
Luego, al final, devolverá la lista de valores positivos (si los hay); si no, será una lista vacía.
public class AreFooPresent { public static bool foo0 = false public static bool foo1 = false public static bool foo2 = false } public class AreTheyThereList { public List<bool> MyPositiveFooCollectionMethod() { List<bool>myList = new List<FooList>(); if (AreFooPresent.foo0) myList.Add(AreFooPresent.foo0); if (AreFooPresent.foo1) myList.Add(AreFooPresent.foo1); if (AreFooPresent.foo2) myList.Add(AreFooPresent.foo2); return myList; } }