使用XML元素

我有工作代码,我只想在我的程序的其他区域中多次引用部分,但我的问题似乎是匿名类型(var)

这是我的程序的一部分加载我的XML文件

string path = "Data//handling4.meta"; var doc = XDocument.Load(path); var items = doc.Descendants("HandlingData").Elements("Item"); var query = from x in items select new { HandlingName = (string)x.Element("handlingName"), HandlingType = (string)x.Element("HandlingType"), Mass = (decimal?)x.Element("fMass").Attribute("value"), InitialDragCoeff = (decimal?)x.Element("fInitialDragCoeff").Attribute("value"), PercentSubmerged = (decimal?)x.Element("fPercentSubmerged").Attribute("value"), DriveBiasFront = (decimal?)x.Element("fDriveBiasFront").Attribute("value") }; 

这段代码效果很好,我也可以使用这样的foreach循环来引用项目

  foreach(var HandlingName in query) { string Names = HandlingName.HandlingName; } 

所以我的问题是, 如何将其引用到程序中的另一个位置? 例如

 private void button1_Click(object sender, EventArgs e) { comboBox1.Items.Add( Names); } 

上面的代码抛出错误’名称在当前上下文中不存在’

我需要让我的comboBox显示每个处理名称,但它失败,因为无法引用匿名类型。 我做错了什么,或者我只是不使用不正确的方法? 谢谢

编辑:另外要提到XML需要在程序的多个部分中引用,按钮单击甚至可以显示DataGridView中的值。 如果我可以创建一个类来加载XML,那么程序的不同区域中的每个元素都是理想的,而不是每次都加载大量的代码块

XML需要在程序的多个部分中引用,

但是你所有的变量都是本地的。 您需要将某些内容存储在Form fiead或property中。

 // outside any method: private List names = new List(); void myLoadMethod() { ... foreach(var HandlingName in query) { //string Names = HandlingName.HandlingName; Names.Add(HandlingName.HandlingName); } } private void button1_Click(object sender, EventArgs e) { comboBox1.Items.Add( Names); }