gpt4 book ai didi

c# - 使用 Linq,如何将 Xml 解析为仅在构造函数中接受参数的 C# 对象?

转载 作者:数据小太阳 更新时间:2023-10-29 02:22:31 25 4
gpt4 key购买 nike

假设我有一些这样的 XML:

<User>
<Name>X</Name>
<Gender>Y</Gender>
<ImageUrl>Z</ImageUrl>
</User>

我有一个名为 User 的类。

public class User
{
public User(string name, string gender, string imageUrl)
{
Name = name;
Gender = gender;
ImageUrl = imageUrl;
}
public string Name { get; }
public string Gender { get; }
public string ImageUrl { get; }
}

仅接受构造函数public User(string name, string gender, string ImageUrl) 并且不允许设置属性,使用 linq 将此 xml 解析为这些对象的最佳方法是什么和 C#?

以一种粗略的方式,可以创建匿名对象,然后迭代它们以创建所需的对象。有没有更有效的方法来做到这一点?

最佳答案

您根本不需要任何匿名对象。使用LINQ to XML您可以简单地从 XML 中选择 User 节点,并通过使用从 XML 节点中选择的值调用构造函数来创建实际的 User 类实例:

// xml contains XML string, like in your sample
var document = XDocument.Parse(xml);
var users = document.Descendants("User")
.Select(u => new User(
u.Element("Name").Value,
u.Element("Gender").Value,
u.Element("ImageUrl").Value
));

关于c# - 使用 Linq,如何将 Xml 解析为仅在构造函数中接受参数的 C# 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10182185/

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