如何使用 Linq Lambda 检索 XML?

Waj*_*hat 2 c# linq asp.net lambda

当 Databind() 调用时,它会在新客户处产生错误。请仅通过 linq 和 lambda 来解决它。

错误 :

你调用的对象是空的

IEnumerable<Customers> Customers = XDocument.Load("Customers.xml")
    .Descendants("Customer")
        .Select(x => new Customers
        {
            Name = x.Element("Name").Value,
            City = x.Element("City").Value,
            Contact = x.Element("Contact").Value
        });

grid.DataSource = Customers;
grid.DataBind();

public class Customers
{
    public Customers() { }
    public string Name { get; set; }
    public string City { get; set; }
    public string Contact { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

XML:

 <?xml version="1.0" encoding="utf-8"?>
<Customers>
    <Customer>
        <Name>John</Name>
        <City>Ney York</City>
        <Contact>2233</Contact>
    </Customer>
    <Customer>
        <Name>Albert</Name>
        <City>Sydney</City>
        <Contact>4455</Contact>
    </Customer>
    <Customer>
        <Name>David</Name>
        <City>Colombo</City>
        <Contact>6677</Contact>
    </Customer>
    <Customer>
        <Name>George</Name>
        <City>London</City>
        <Contact>8899</Contact>
    </Customer>
</Customers>
Run Code Online (Sandbox Code Playgroud)

Man*_*iya 5

尝试这个..

IEnumerable<Customers> Customers = XDocument.Load("Customers.xml").Element("Customers")
  .Descendants("Customer")
    .Select(x => new Customers
    {
        Name = x.Element("Name").Value,
        City = x.Element("City").Value,
        Address = x.Element("Address").Value
    });
Run Code Online (Sandbox Code Playgroud)

希望这项工作。