编辑(希望清楚):
我想做的(不确定是否可以做到)是这样的顺序:
- 确定变量是否存在(例如,"你有鼠标吗?你有键盘吗?你们有扬声器吗?等)
- 使用#1的输出,创建一个包含are/are not语句输出的列表(例如,您有鼠标吗?是吗?将鼠标添加到列表中。你有键盘吗?没有?好的,将键盘从与鼠标相同的列表中省略,并且不要将其添加到另一个列表中。你们有扬声器吗?是吗?将扬声器添加到鼠标所在的列表中。
- 能够在以后的点引用此列表
如果下面的代码让你感到困惑,请不要让它困惑,而是看看#1-3。
Edit2:这是c# w/目标框架。net框架4.7.2,输出类型类库(.dll),以防改变代码的编写方式。
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));
}
}
另一个使用linq
using System.Linq;
...
var list = (new bool[] {AreFooPresent.foo0, AreFooPresent.foo1, AreFooPresent.foo2})
.Where(b => b).ToList();
我看到你初始化了某个对象FooList
,这里是
using System.Linq;
...
var list = (new bool[] {AreFooPresent.foo0, AreFooPresent.foo1, AreFooPresent.foo2})
.Where(b => b)
.Select(b => new FooList(b)).ToList();
欢迎来到SO!像下面这样简单的代码就可以完成这项工作。只有当它为true时,它才会添加到列表中,因为它们是静态成员,所以你可以先引用类,然后再引用静态成员。
然后在最后,它将返回正bool列表(如果有的话)-如果没有,它将是一个空列表。
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;
}
}