你能根据另一个 class 的 bool 输出创建一个列表吗?

Can you create a list based on the output of bools from another class?

编辑(希望清晰):

我想做的(不确定是否可以完成)的顺序是:

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

如果下面的代码让您感到困惑,请不要看它,而是查看#1-3。

Edit2:这是针对带有 Target Framework .NET Framework 4.7.2 的 C#,输出类型 Class Library(.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));
        }
    }

欢迎来到 SO!像下面的代码这样简单的东西就可以完成这项工作。它只会添加到列表中,如果它是真实的并且因为它们是静态成员,您可以引用 class 然后是静态成员。

然后在最后,它将 return 正布尔列表(如果有)- 如果没有,它将是一个空列表。

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

另一个使用 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();