gpt4 book ai didi

.NET Linq 到 XML : final value overwrites the previous DISTINCT values

转载 作者:行者123 更新时间:2023-12-05 01:04:04 29 4
gpt4 key购买 nike

我有一个查询,如果它返回一个单行就可以正常工作。但是,如果有多行,它将:

  • 创建正确数量的行
  • 错误地将每一行分配给最后一行的值...在这种情况下,它将返回 x3 行,因为这是满足查询的最终节点。

  • 我原以为它会返回 x3 DISTINCT 行。
    谁能建议为什么不同的值被最终的 xml 节点覆盖?

    谢谢
    <?xml version="1.0" encoding="utf-8" ?>
    <Music>
    <customer id="89">
    <name value="Sample Name 2" />
    <age value="31" />
    <location>
    <city value="Wichita" />
    <state value="KS" />
    <country value="USA" />
    </location>
    </customer>
    <customer id="80">
    <name value="Sample Name 3" />
    <age value="41" />
    <location>
    <city value="Seattle" />
    <state value="WA" />
    <country value="USA" />
    </location>
    </customer>
    <customer id="84">

    <name value="Sample Name" />
    <age value="29" />
    <location>
    <city value="Los Angeles" />
    <state value="CA" />
    <country value="USA" />
    </location>
    </customer>
    <customer id="100">
    <name value="Rock UK" />
    <age value="25" />
    <location>
    <city value="Los Angeles" />
    <state value="CA" />
    <country value="USA" />
    </location>
    </customer>
    </Music>

    代码如下:
    private List<Music> currentMusic { get; set; }
    private IEnumerable<Music> GetCustomer(string id)
    {
    XElement main = XElement.Load(@"D:\work\web\App_Data\Customers.xml");

    IEnumerable<XElement> searched =
    from c in main.Elements("customer")
    where (string)c.Attribute("id") != "100"

    select c;

    Music music = new Music();


    currentMusic = new List<Music>();

    foreach (XElement customer in searched)
    {
    music.Country = customer.Element("name").Attribute("value").Value;
    music.Name = customer.Element("age").Attribute("value").Value;
    currentMusic.Add(music);
    }
    return currentMusic;
    }

    最佳答案

    搬家 Music music = new Music();在您的 foreach 内环形。

    目前您正在创建一个 Music实例并将其多次添加到列表中。每次更新它时,列表中的每个项目都会受到影响,因为它们都是相同的项目。

    关于.NET Linq 到 XML : final value overwrites the previous DISTINCT values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13345853/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com