[英]How do I combine these two different LINQ queries into one?
How do I write this so that I can get the Id and the Fist and Last name all in one query? 如何编写此代码,以便可以在一个查询中同时获得ID,拳头和姓氏? Everything I have found via Search is database related and involves a Join or a Group, which I don't think is applicable to what I am trying to do. 我通过搜索找到的所有内容都与数据库有关,并且涉及到联接或组,我认为这些不适用于我要执行的操作。 I want to print the order Id and the associated first and last name to the screen. 我想在屏幕上打印订单ID和相关的名字和姓氏。
static void Main()
{
XDocument document = XDocument.Parse(GetXml());
var query = from el in document.Root.Elements("Order")
select new Orders
{
Id = (int)el.Element("Id")
};
foreach (var cc in query)
{
Console.WriteLine(cc.Id);
}
var info = from el in document.Root.Elements("Order").Elements("BillingAddress")
select new BillingAddress
{
FirstName = (string)el.Element("FirstName"),
LastName = (string)el.Element("LastName")
};
foreach (var cc in info)
{
Console.WriteLine("{0} {1}", cc.FirstName, cc.LastName);
}
Console.ReadLine();
}
private static String GetXml()
{
return
@"<ArrayOfOrder>
<Order>
<Id>1</Id>
<OrderGuid />
<BillingAddress>
<FirstName>Harvey</FirstName>
<LastName>Danger</LastName>
</BillingAddress>
</Order>
<Order>
<Id>2</Id>
<OrderGuid />
<BillingAddress>
<FirstName>Brian</FirstName>
<LastName>Brakes</LastName>
</BillingAddress>
</Order>
</ArrayOfOrder>";
}
Add a BillingAddress
property to your Orders class then you can do the following: 将BillingAddress
属性添加到Orders类,然后可以执行以下操作:
var query = from el in document.Root.Elements("Order")
select new Orders
{
Id = (int) el.Element("Id"),
BillingAddress = new BillingAddress
{
FirstName = (string) el.Element("BillingAddress").Element("FirstName"),
LastName = (string) el.Element("BillingAddress").Element("LastName")
}
};
var query = from el in document.Root.Elements("Order")
select new Orders
{
Id = (int)el.Element("Id"),
Names = el.Elements("BillingAddress")
.Select(ba=>
new { FirstName = (string)ba.Element("FirstName"),
LastName = (string)ba.Element("LastName")
}
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.