如何将多种数据类型添加到列表中
我的列表如下,
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。
当您拉出对象时,您需要测试它们是否为string
或float?
类型的对象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, } };