簡體   English   中英

如何將這兩個不同的LINQ查詢合並為一個?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM