【发布时间】:2021-08-14 11:33:33
【问题描述】:
我真的不知道这是否是正确的方法,但我想返回一个数组数组以便稍后在另一个函数中调用它的元素。
static Values RetrieveXML(string XMLFile)
{
using var reader = XmlReader.Create(XMLFile);
reader.ReadToFollowing("ticket");
reader.ReadToFollowing("lignes");
string nombre = reader.GetAttribute("nombre");
int ligne = int.Parse(nombre);
Values[] _Values = new Values[ligne];
for(int i=0; i<ligne; i++){
_Values[i] = new Values();
reader.ReadToFollowing("article");
_Values[i].code = reader.GetAttribute("code");
_Values[i].qty = reader.GetAttribute("quantite");
_Values[i].net_price = reader.GetAttribute("net");
_Values[i].net_ht_price = reader.GetAttribute("net_ht");
_Values[i].tva = reader.GetAttribute("taxes");
_Values[i].num = reader.GetAttribute("numero");
_Values[i].valeur = reader.GetAttribute("base_ht");
_Values[i].remise = reader.GetAttribute("valeur_remise");
reader.ReadToFollowing("libelle");
_Values[i].libelle = reader.ReadElementContentAsString();
Console.WriteLine("-----------Using XMLToOrderLine--------------");
Console.WriteLine(_Values[i].code);
Console.WriteLine(_Values[i].valeur);
}
return _Values[];
}
public class Values
{
public string code;
public string qty;
public string remise;
public string valeur;
public string tva;
public string libelle;
public string num;
public string net_ht_price;
public string net_price;
}
然后我想通过示例调用:Values[1].code 在另一个函数中,我该怎么做?
【问题讨论】:
-
“如果这是正确的方法” - 它有效吗?是否可以无错误地编译?
-
将定义改为:static Values[] RetrieveXML(string XMLFile) 然后返回 return _Values; (没有数组)。
-
需要考虑的其他事项是该合同更改的可能性有多大?您是否需要考虑使其更通用,以便在进行这些更改的情况下仍能正常工作?
-
哦,是的,我的错谢谢@jdwengspan>
-
恕我直言,值对于该类来说是一个坏名字,并且在这种情况下增加了它所代表的混淆。值(单数)应该更好。即使那样它也不会告诉你它的对象是什么。也许是“文章”。这显然与您的问题无关,但有助于澄清。
标签: c# arrays xml function multidimensional-array