2

我一直在查看以下链接中的 LINQ 示例;我已经在链接下面发布了代码。

是否可以修改此示例,以便返回的项目var包含在与 doc.Descendants("person") 过滤器匹配的项目中找到的所有子元素?我基本上希望这个 XML 查询能够像 SQL 选择 * 这样我就不必像他们对饮料、moneySpent 和邮政编码所做的那样明确指定字段名称。

http://broadcast.oreilly.com/2010/10/understanding-c-simple-linq-to.html#example_1

static void QueryTheData(XDocument doc)
{
     // Do a simple query and print the results to the console
     var data = from item in doc.Descendants("person")
                 select new
                 {
                      drink = item.Element("favoriteDrink").Value,
                      moneySpent = item.Element("moneySpent").Value,
                      zipCode = item.Element("personalInfo").Element("zip").Value
                  };
     foreach (var p in data)
         Console.WriteLine(p.ToString());
}
4

2 回答 2

1

OP说他喜欢发布的答案,所以我将重新提交它以供科学使用:)

var data = from item in doc.Descendants("person")
           select item;

唯一的问题是 data 是IEnumerable<XElement>,您必须按字符串名称查询字段。

于 2012-04-18T20:03:48.583 回答
-1
// Do a simple query and print the results to the console 
var data = from item in doc.Descendants("person") 
             select item;   
于 2012-04-18T19:39:13.863 回答