如何将多种数据类型添加到列表中

我的列表如下,

var serie_line = new { name = series_name , data =new List() }; 

在包含浮点值的另一个列表中的上述代码数据中,我希望数据包含两个不同的数据类型值,即string和float值,当我尝试添加两个不同的数据类型值时,如下所示,

 var serie_line = new { name = series_name , data =new List() }; 

它给我一个错误,因为Using the generic type'System.Collections.Generic.List' requires 1 argument.

我不能尝试data=new List<Tupple>(); ..因为我正在使用.NET 3.5 …任何想法..我知道我处理这个问题..谢谢你,

———-更新的问题———

我需要的输出如下,

  { "legend":{"enabled":"true"}, "title":{"text":"Financial"}, "chart":{"type":"pie"}, "series": [ {"name":"Actual-","data":[["Market Share",20.00],["Sales Growth",30.00],["Operating Profit",40.00],["Actual-Gross Margin %",10.00]]} ] }, 

这个数据列表应该包含一个字符串值和一个浮点值…我想在highcharts中绘制饼图,但我得到的输出如下,

 { "legend":{"enabled":"true"}, "title":{"text":"Financial"}, "chart":{"type":"column"}, "series":[{"name":"Actual","data":[{"Str":"Market Share","Flo":20.00}]}, {"name":"Actual","data":[{"Str":"Sales Growth","Flo":30.00}]}, {"name":"Actual","data":[{"Str":"Operating Profit","Flo":40.00}]}, {"name":"Actual","data":[{"Str":"Gross Margin %","Flo":10.00}]} ] } 

任何的想法…???

———-使用词典———-

 var data = new Dictionary(); var serie_line = new { name = series_name, data }; serie_line.data.Add(child_object_name, period_final_value); 

但这并没有提供所需的输出……它只给出数据内部的值,例如“data”:[“market share”:20.00] ..因为我将serie_line序列化为JSON ……但我不希望这样方式……我想要的是“数据”:[“市场份额”,20.00]

我希望你能得到这个……

只是用

  new Dictionary() //if your string value cannot be duplicated 

//要么

  new List > 

创建一个与列表一起使用的类型:

 public class MyDataType { public string Str {get; set;} public float? Flo {get;set;} } 

你这样使用它:

 var serie_line = new { name = series_name , data =new List() }; serie_line.data.Add(new MyDataType{Flo = 45.4}); 

或者喜欢:

 var serie_line = new { name = series_name , data =new List() }; serie_line.data.Add(new MyDataType{Flo = 45.4, Str = "my string"}); 

如果您尝试将项添加到列表中以便两者都可用,则需要使用List()作为它们之间唯一的共享类型。 那或者使用ArrayList。

当您拉出对象时,您需要测试它们是否为stringfloat?类型的对象float? 为了把他们赶回去。 你可能能够包装它们。

使用ArrayList ,非通用版本的List。

更结构化的东西怎么样:

 public struct MyData { public float? FloatData; public string StringData; } var serie_line = new { name = series_name, data = new MyData() { FloatData = theFloatData, StringData = theStringData, } };