Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 不同类型的列表列表_C#_.net_List - Fatal编程技术网

C# 不同类型的列表列表

C# 不同类型的列表列表,c#,.net,list,C#,.net,List,我想将不同类型的列表添加到列表中。这是我的方法: struct Column { public string title; public List<dynamic> col; } var signals = new List<Column>(); signals.Add(new Column {title = "stringCol", col = new List<string>() }); signals.Add(new Column {t

我想将不同类型的列表添加到列表中。这是我的方法:

struct Column
{
    public string title;
    public List<dynamic> col;
}

var signals = new List<Column>();
signals.Add(new Column {title = "stringCol", col = new List<string>() });
signals.Add(new Column {title = "doubleCol", col = new List<double>() });
struct列
{
公共字符串标题;
公开名单;
}
var信号=新列表();
signals.Add(新列{title=“stringCol”,col=new List()});
signals.Add(新列{title=“doubleCol”,col=new List()});

它说,
List
不能转换为
List
。我也尝试过使用模板,但我没有让它运行。

使用
对象
而不是
动态
,您将拥有
对象
的列表,您可以稍后将其转换为所需的类型

struct Column
{
    public string title;
    public List<object> col;
}

var signals = new List<Column>();
signals.Add(new Column {title = "stringCol", col = new List<object> {new List<string>() }});
signals.Add(new Column {title = "doubleCol", col = new List<object> {new List<double>() }});
struct列
{
公共字符串标题;
公开名单;
}
var信号=新列表();
signals.Add(新列{title=“stringCol”,col=new List{new List()});
signals.Add(新列{title=“doubleCol”,col=newlist{newlist()}});
为什么不是动态的?请看这里:

摘要:

如果您使用动态,您将选择动态键入,从而选择 大多数情况下都是编译时外检查


因此,这意味着
动态
类型将在运行时计算,并不意味着“任何类型”,而是意味着“运行时定义的某个类型”

除非您将所有列表都设置为相同类型(例如
动态
),否则无法执行此操作。本打算编辑您的答案,但您击败了我。改为+1:)在您的答案中添加我建议在结构中使用第三个属性来标识列表的类型。我的回答和你一样:)@Dom84这是一个选项,很好的建议:)我如何访问
列表
?我尝试了
signals[0].col.Add(“string”)
,但这会在
列表中添加一个元素
@Henste是的,但此
对象的底层类型是
string