首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将LINQ查询转换为匿名类型

如何将LINQ查询转换为匿名类型
EN

Stack Overflow用户
提问于 2013-04-03 03:20:41
回答 1查看 105关注 0票数 4

我要让这样一个脑残了。我已经选择了我需要的元素和值,我只是在努力让这个返回成为一个匿名类型:

下面是XML:

代码语言:javascript
运行
复制
<r25:space xl:href="space.xml?space_id=244" id="BRJDMjQ0" crc="00000023" status="est">
  <r25:space_id>244</r25:space_id>
  <r25:space_name>BEC*103</r25:space_name>
  <r25:formal_name>Branson Education Center 103</r25:formal_name>
  <r25:partition_id />
  <r25:partition_name />
  <r25:favorite>F</r25:favorite>
  <r25:max_capacity>24</r25:max_capacity>
  <r25:fill_ratio />
  <r25:last_mod_user>kleierd</r25:last_mod_user>
  <r25:last_mod_dt>2009-11-19T15:35:33</r25:last_mod_dt>
</r25:space>

我需要"space_id“和"space_name”的值,我可以使用下面的代码:

代码语言:javascript
运行
复制
var ids = from id in xml.Descendants()
                  where id.Name.LocalName == "space_id" || id.Name.LocalName == "space_name"
                  select (string)id.Value;

但我真的希望是这样的:

代码语言:javascript
运行
复制
var ids = from id in xml.Descendants()
                  where id.Name.LocalName == "space_id" || id.Name.LocalName == "space_name"
                  select new
                  { 
                      theId = //The id val would go here,
                      theName = //The name goes here
                  };
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-03 03:24:51

代码语言:javascript
运行
复制
var ids = from id in xml.Descendants()
          where id.Name.LocalName == "space_id" || id.Name.LocalName == "space_name"
          select new
          { 
                theId = id.Value,
                theName = id.Name.LocalName
          };

ids将保存值:

代码语言:javascript
运行
复制
theId     theName 
244       pace_id 
BEC*103   space_name 

这将选择相同的节点:

代码语言:javascript
运行
复制
XNamespace r25 = "yourSchemaDefinition";

var ids = xml.Descendants(r25 + "space_id")
             .Union(xml.Descendants(r25 + "space_name"))
             .Select(id => new
                           { 
                              theId = id.Value,
                              theName = id.Name.LocalName
                           });

注意:我已经将r25模式定义添加到您的XML根节点

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15772544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档