C# 无法隐式转换类型';字符串';至';system.collections.arraylist';在C中#

C# 无法隐式转换类型';字符串';至';system.collections.arraylist';在C中#,c#,C#,这是我的密码: XmlNodeList ProjectNode = DOC.GetElementsByTagName("AppBuilderProject"); foreach (XmlNode AllNodes in ProjectNode) { Project.Titel = AllNodes["Titel"].InnerText; // 1st value from node foreach (XmlNode controlsform in Project.Forms

这是我的密码:

XmlNodeList ProjectNode = DOC.GetElementsByTagName("AppBuilderProject");

foreach (XmlNode AllNodes in ProjectNode) 
{
    Project.Titel = AllNodes["Titel"].InnerText; // 1st value from node

    foreach (XmlNode controlsform in Project.Forms) // arraylist Forms
    {
        Project.Forms = controlsform["forms"].InnerText;// error
    }
}
请告诉我如何解决这个问题

属性“Project.Forms”显然是arraylist和属性(XmlNode)类型。InnerText是字符串

试试这个

if(Project.Forms == null) Project.Forms = new ArrayList();
Project.Forms.Add(controlsform["forms"].InnerText);

Project.Forms的类型为system.collections.arraylist,但您正在尝试将字符串复制到其中。我猜你的
project.forms=
应该是别的东西。你能解释一下你想做什么吗?你想做的没有意义。错误会准确地告诉您问题所在。您正试图执行从
System.Collections.ArrayList
String
的非法强制转换。这是无法完成的。有几件事,我的意思是尽可能礼貌地说:“Titel”拼写为“Title”。什么是项目对象?您的错误表明您正在将字符串隐式转换为ArrayList,而ArrayList是no。您不能这样做。如果InnerText中存在序列化对象,则需要将其反序列化回所需对象。顺便说一句,我会避免使用ArrayList,使用泛型列表,但在序列化的情况下,使用普通数组将是您所需要的。@BobVale:我试图从具有2个属性的类FBprojects中获取值。滴度和形式(arraylist)。表单具有控件。基本上我想在运行时从XML文件创建UI什么UI?我打赌ASP,那会有点遥远的意义。不过,你的项目似乎有点牵强。如果它确实是ASP,您最好在一组用户控件和其中的绑定数据之间进行选择。这不是
Project.Forms.Add(controlsform[“Forms”].InnerText)
对不起,键入错误:)我修复了它