如何访问对象数组

时间:2012-09-04 23:22:49

标签: xml-serialization xsd linq-to-xml deserialization xml-deserialization

我有一个来自xml的自动生成的类,如下所示:

public partial class XmlClass {

private decimal num1;

private ClassA[] classField;

/// <remarks/>
public decimal num1 {
    get; 
    set; 
    }
}

/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("classA")]
public ClassA[] classA {
    get{...};
    set{...}; 

}

}

public partial class ClassA {

private object[] itemsField;

private string typeField;

[System.Xml.Serialization.XmlElementAttribute("commands", typeof(classACommands))]

[System.Xml.Serialization.XmlElementAttribute("minVersion", typeof(string))] 
public object[] Items {
    get {
        return this.itemsField;
    }
    set {
        this.itemsField = value;
    }
}

[System.Xml.Serialization.XmlAttributeAttribute()]
public string type {
    get {
        return this.typeField;
    }
    set {
        this.typeField = value;
    }
}

}

ClassA在Object[]中将字符串和命令类作为对象。我可以看到所有内容都被完美地反序列化并通过它来获取它们:(commands)myXmlClass.classA.ElementAt(i).Items[3],其中i来自ClassA数组的索引。但是如何在不使用'3'的情况下获取或设置它们?它可能在不同的ClassA元素中有所不同。

1 个答案:

答案 0 :(得分:0)

不确定我完全理解你的问题,但你可以使用foreach循环:

foreach(ClassA a in myXmlClass.classA) {
  Console.WriteLine(a.num1.ToString());
}