C# 如何将多个数据类型添加到列表中

C# 如何将多个数据类型添加到列表中,c#,json,list,highcharts,C#,Json,List,Highcharts,我的清单如下: var serie_line = new { name = series_name , data =new List<float?>() }; 此数据列表应包含一个字符串值和一个浮点值…我想在highcharts中绘制饼图,但我得到的输出如下所示 { "legend":{"enabled":"true"}, "title":{"text":"Financial"}, "chart":{"type":"pie"}, "series": [ {"n

我的清单如下:

var serie_line = new { name = series_name , data =new List<float?>() };
此数据列表应包含一个字符串值和一个浮点值…我想在highcharts中绘制饼图,但我得到的输出如下所示

 {
 "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]]}
  ]
  },
{
"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=newdictionary();
var serie_line=new{name=series_name,data};
serie_line.data.Add(子对象名称、句点、最终值);
但这并没有给出所需的输出。。。 它只给出数据内部的值,例如, “数据”:[“市场份额”:20.00]。。因为我正在将serie_行序列化为JSON…但我不想这样…我想要的是“数据”:[“市场份额”,20.00]

我希望你得到这个…

使用,列表的非通用版本。

只需使用

 new Dictionary<string, float?>() //if your string value cannot be duplicated  
new Dictionary()//如果无法复制字符串值
//或

新列表

如果试图将项目添加到列表中,以便两者都可用,则需要使用
list()
,因为这是两者之间唯一的共享类型。或者使用ArrayList


当您拉出对象时,您需要测试它们是否为
string
float?
类型的对象,以便将它们放回原处。你可以把它们包起来

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

public class MyDataType
{
  public string Str {get; set;}
  public float? Flo {get;set;}
}
您可以这样使用它:

var serie_line = new { name = series_name , data =new List<MyDataType>() };
serie_line.data.Add(new MyDataType{Flo = 45.4});
var serie_line=new{name=series_name,data=new List()};
serie_line.data.Add(新的MyDataType{Flo=45.4});
或者说:

var serie_line = new { name = series_name , data =new List<MyDataType>() };
serie_line.data.Add(new MyDataType{Flo = 45.4, Str = "my string"});
var serie_line=new{name=series_name,data=new List()};
serie_line.data.Add(新的MyDataType{Flo=45.4,Str=“mystring”});

更结构化的东西怎么样:

public struct MyData
{
    public float? FloatData;
    public string StringData;
}

var serie_line = new
                 {
                     name = series_name,
                     data = new MyData()
                            {
                                FloatData = theFloatData,
                                StringData = theStringData,
                            }
                 };

您想要对象列表还是元组列表(或它们的等价物)?ie是您的字符串并浮动一对一的映射,还是只是您的列表中可能有类似
{1,2,3,“four”}
的内容?@chries…我希望我的数据列表以{“string”,1}的形式输出,那么您的列表中是否只有两项?如果是这样的话,为什么要列出一个清单?那么你给我的建议是什么而不是清单?啊,我看到你也更新了这个问题,给出了你真正想做的事情。你应该总是考虑问你想做什么,而不是你认为你需要什么。从最初的问题:“我不能尝试<代码>数据=新的表():< /代码>”我已经更新了我的答案KEYVALIVEPAIR被支持.NET3.5当我使用字典..我得到的输出如下“系列”:[ {“名称”:“实际”,“数据”:{“Str”:“Market Share”,“Flo”:22.37}]}]…我之所以使用这种格式,是因为我将我的变量转换为JSON格式,因为我的主要目的是在highcharts中绘制饼图。我不想要这种输出…请回答我的更新问题…你如何使用字典我看不到你的更新问题
var serie_line = new { name = series_name , data =new List<MyDataType>() };
serie_line.data.Add(new MyDataType{Flo = 45.4});
var serie_line = new { name = series_name , data =new List<MyDataType>() };
serie_line.data.Add(new MyDataType{Flo = 45.4, Str = "my string"});
public struct MyData
{
    public float? FloatData;
    public string StringData;
}

var serie_line = new
                 {
                     name = series_name,
                     data = new MyData()
                            {
                                FloatData = theFloatData,
                                StringData = theStringData,
                            }
                 };