使用C#中的LINQ查询XML文件

我有一个LINQ查询我的XML文件,它看起来像这样

IEnumerable c = from cli in xEl.Elements(ns + "client") where cli.Element(ns+"ID").Value == (((Client)cComboBox.SelectedItem).Id +"") select cli; 

它工作正常..接下来我想迭代这些数据,所以我这样做

  foreach (XElement el in c) { } 

我的xml文件看起来像这样

   1 Andrej 

通过迭代,我想提取客户端值(id – > 1 ,name – > Andrej

我的猜测是把el.Element("name").Value放在循环的中间,但那不起作用…哦,顺便说一句:我在C#中这样做..

我该怎么办?

btw2:你可以看到我是linq的新手,所以我觉得我已经离开了这个……

任何帮助都会得到满足! TNX!

如果我使用此代码:

  public void Run() { string fileToLoad = this.GetType().Name + ".xml"; XElement root = XElement.Load(fileToLoad); var selected = from cli in root.Elements("client") where cli.Element("ID").Value == "1" select cli; System.Console.WriteLine("Selected:"); foreach (var d in selected) Console.WriteLine("{0}", d.ToString()); System.Console.WriteLine("\nitems:"); foreach (var d in selected) { Console.WriteLine("id: {0}", d.Element("ID")); } } 

而这个来源数据:

   1 Andrej   2 William   3 Kate   

然后……我得到了这个结果:

 Selected:  1 Andrej  items: id: 1 

你可以在一个声明中做到这一点。 我在解释你的陈述。 只有选择才真正改变。

  var nameIdList = (from cli in client where cli.ID == ID select new { id=cli.ID, name=cli.name }).ToList();