你能基于另一个类的输出创建一个列表吗?



编辑(希望清楚):

我想做的(不确定是否可以做到)是这样的顺序:

  1. 确定变量是否存在(例如,"你有鼠标吗?你有键盘吗?你们有扬声器吗?等)
  2. 使用#1的输出,创建一个包含are/are not语句输出的列表(例如,您有鼠标吗?是吗?将鼠标添加到列表中。你有键盘吗?没有?好的,将键盘从与鼠标相同的列表中省略,并且不要将其添加到另一个列表中。你们有扬声器吗?是吗?将扬声器添加到鼠标所在的列表中。
  3. 能够在以后的点引用此列表

如果下面的代码让你感到困惑,请不要让它困惑,而是看看#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;
}
}

最新更新