То, что вы делаете, работает только с разнородными списками.
List<T>
- это однородный список типа T
, означающий, что все элементы должны быть типа T
. Поскольку Option<bool>
и Option<int>
не имеют общего предка, кроме object
, вы не сможете сделать это, если не используете List<object>
или старый ArrayList
, оба из которых действуют как гетерогенные списки.
Подумайте о получении объектов из этого списка:
list.Add(TestBool);
list.Add(TestInt);
for(int i = 0; i < list.Count; i++)
{
list[i].Value // <- what's the type of this?
}