C# 要将XElement转换为int值,

C# 要将XElement转换为int值,,c#,linq,list,foreach,xelement,C#,Linq,List,Foreach,Xelement,我的childobjects循环如下所示 List<float?> LValues = new List<float?>(); List<float?> IValues = new List<float?>(); List<float?> BValues = new List<float?>(); List<HMData>[] data = new List<HMData>[4]; float? Va

我的childobjects循环如下所示

List<float?> LValues = new List<float?>();
List<float?> IValues = new List<float?>();
List<float?> BValues = new List<float?>();
List<HMData>[] data = new List<HMData>[4];
float? Value_LfromList = 0;
float? Value_IfromList = 0;
float? Value_BfromList = 0;

foreach (var item in Read_xml_for_childobjects_id.Root.Descendants("object"))
{
    data[item] = new List<HMData>();  // Error occuring on this line
    for (int k = 0; k < 7; k++)
    {
        Value_LfromList = LValues.ElementAt(k);
        Value_IfromList = IValues.ElementAt(k);
        Value_BfromList = BValues.ElementAt(k);
        data[k].Add(new HMData { x = Value_LfromList, y = Value_IfromList, z = Value_BfromList });
    } 
}
列表左值=新列表();
List IValues=新列表();
List BValues=新列表();
列表[]数据=新列表[4];
浮动值_LfromList=0;
浮动值_IfromList=0;
浮动值_BfromList=0;
foreach(读取\u xml\u中的变量项,用于\u childobjects\u id.Root.subjects(“对象”))
{
data[item]=new List();//此行出错
对于(int k=0;k<7;k++)
{
Value_LfromList=左值。元素(k);
Value_IfromList=IValues.ElementAt(k);
Value_BfromList=bvalue.ElementAt(k);
数据[k].Add(新的HMData{x=Value\u-LfromList,y=Value\u-IfromList,z=Value\u-fromlist});
} 
}
在下面这行,

data[item] = new List<HeatMapData>();
data[item]=新列表();
我得到一个错误如下:

List<float?> LValues = new List<float?>();
List<float?> IValues = new List<float?>();
List<float?> BValues = new List<float?>();
List<HMData>[] data = new List<HMData>[4];
float? Value_LfromList = 0;
float? Value_IfromList = 0;
float? Value_BfromList = 0;

foreach (var item in Read_xml_for_childobjects_id.Root.Descendants("object"))
{
    data[item] = new List<HMData>();  // Error occuring on this line
    for (int k = 0; k < 7; k++)
    {
        Value_LfromList = LValues.ElementAt(k);
        Value_IfromList = IValues.ElementAt(k);
        Value_BfromList = BValues.ElementAt(k);
        data[k].Add(new HMData { x = Value_LfromList, y = Value_IfromList, z = Value_BfromList });
    } 
}
无法将类型“System.XML.Linq.XElement”隐式转换为“int”。存在显式转换(是否缺少强制转换?)

-------更新问题------

int索引器=0;
foreach(读取\u xml\u中的变量项,用于\u childobjects\u id.Root.subjects(“对象”))
{
数据[索引器]=新列表();
对于(int k=0;k<7;k++)
{
Value_LromList=左值。元素(k);
Value_IfromList=IValues.ElementAt(k);
Value_BfromList=bvalue.ElementAt(k);
数据[k].Add(新的HMData{x=Value\u-LfromList,y=Value\u-IfromList,z=Value\u-fromlist});
}    
索引器++;
}
但由于对象引用未设置为对象的实例,我得到了错误。一旦我进入k值的第二个for循环,我总共有4个ChildObject,其中每个ChildObject通过7个元素填充列表中的每个元素。请查看此链接了解详细问题。。
遇到真正困难的时候,我们会感谢您的帮助,谢谢,

尽管这里的例外是不言自明的,您正在尝试将XElement传递给需要int的索引器。为了固定它

data[item]
需要一个int值来代替项。在您的情况下,它是XElement。因此出现了错误

示例(只是示例,不要使用):它应该是

int indexer= 0;
data[indexer++] = new List<HeatMapData>();
int索引器=0;
数据[indexer++]=新列表();

尽管这里的异常是不言自明的,您试图将XElement传递给需要int的索引器。为了固定它

data[item]
需要一个int值来代替项。在您的情况下,它是XElement。因此出现了错误

示例(只是示例,不要使用):它应该是

int indexer= 0;
data[indexer++] = new List<HeatMapData>();
int索引器=0;
数据[indexer++]=新列表();

尽管这里的异常是不言自明的,您试图将XElement传递给需要int的索引器。为了固定它

data[item]
需要一个int值来代替项。在您的情况下,它是XElement。因此出现了错误

示例(只是示例,不要使用):它应该是

int indexer= 0;
data[indexer++] = new List<HeatMapData>();
int索引器=0;
数据[indexer++]=新列表();

尽管这里的异常是不言自明的,您试图将XElement传递给需要int的索引器。为了固定它

data[item]
需要一个int值来代替项。在您的情况下,它是XElement。因此出现了错误

示例(只是示例,不要使用):它应该是

int indexer= 0;
data[indexer++] = new List<HeatMapData>();
int索引器=0;
数据[indexer++]=新列表();

我在将int传递到数组索引时遇到了问题,你能告诉我怎么做吗,我知道错误,我知道我需要传递int值,但不知道怎么做,即使当我试图将项解析为int作为数据[int.parse(item)]…我仍然会得到错误,因为int.parse(item)的最佳重载方法匹配具有一些无效的方法参数无法将XElement解析为int。请改用一些int值。这里您缺少的是ead_xml_for_childobjects_id.Root.subjections(“object”)返回的是XElement而不是int值。我在将int传递到数组索引时遇到了问题,您能否用例如演示一下我如何做到这一点,我知道错误,我知道我需要传递int值,但不知道如何做,即使我试图将项解析为int作为数据[int.parse(item)]。我仍然会出错,因为与int.parse(item)匹配的最佳重载方法具有一些无效的方法参数。您无法将XElement解析为int。请改用一些int值。这里您缺少的是ead_xml_for_childobjects_id.Root.subjections(“object”)返回的是XElement而不是int值。我在将int传递到数组索引时遇到了问题,您能否用例如演示一下我如何做到这一点,我知道错误,我知道我需要传递int值,但不知道如何做,即使我试图将项解析为int作为数据[int.parse(item)]。我仍然会出错,因为与int.parse(item)匹配的最佳重载方法具有一些无效的方法参数。您无法将XElement解析为int。请改用一些int值。这里您缺少的是ead_xml_for_childobjects_id.Root.subjections(“object”)返回的是XElement而不是int值。我在将int传递到数组索引时遇到了问题,您能否用例如演示一下我如何做到这一点,我知道错误,我知道我需要传递int值,但不知道如何做,即使我试图将项解析为int作为数据[int.parse(item)]。我仍然会出错,因为与int.parse(item)匹配的最佳重载方法具有一些无效的方法参数。您无法将XElement解析为int。请改用一些int值。这里缺少的是ead\u xml\u for\u childobjects\u id.Root.subjections(“object”)返回的是XElement,而不是int值。