[英]How do I combine these two different LINQ queries into one?
如何編寫此代碼,以便可以在一個查詢中同時獲得ID,拳頭和姓氏? 我通過搜索找到的所有內容都與數據庫有關,並且涉及到聯接或組,我認為這些不適用於我要執行的操作。 我想在屏幕上打印訂單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>";
}
將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.