gpt4 book ai didi

c# - 使用 LINQ 解析 XML 并填充现有对象的属性而不是创建新的属性

转载 作者:太空宇宙 更新时间:2023-11-03 14:24:46 26 4
gpt4 key购买 nike

我现在有以下代码:

Tutorial tutorial =
(from tutorial in xmlDoc.Descendants("Tutorial")
select new Tutorial
{
Author = tutorial.Element("Author").Value,
Title = tutorial.Element("Title").Value,
Date = DateTime.Parse(tutorial.Element("Date").Value),
}).First();

myTutorial.Author = tutorial.Author;
myTutorial.Title = tutorial.Title;
myTutorial.Date = tutorial.Date;

myTutorial 是从另一个方法传递过来的。下面的代码必须“填充”它。

问题是:有没有一种方法可以创建 LINQ 查询,该查询将值分配给现有对象的属性,而不是创建一个新对象。

我希望我的代码看起来像这样:

   Tutorial tutorial =
(from tutorial in xmlDoc.Descendants("Tutorial")
select myTutorial
{
Author = tutorial.Element("Author").Value,
Title = tutorial.Element("Title").Value,
Date = DateTime.Parse(tutorial.Element("Date").Value),
});

我遇到的问题是:我有一个对象,它最初只设置了一半的属性,后来我需要填充其余的属性。这需要异步完成。

我的方法:我使用 WebClient 的异步方法 DownloadStringAsync 下载 XML 文件。在事件处理程序中,我不想用它缺少的属性填充对象。这就是为什么我想直接将值传递给我的对象而不是创建一个新对象。

如果这不是最好的方法,请告诉我。

最佳答案

好吧,这是纯粹的邪恶:

var dropThis =
(from tutorial in xmlDoc.Descendants("Tutorial")
select new
{
Author = (myTutorial.Author = (string)tutorial.Element("Author")),
Title = (myTutorial.Title = (string)tutorial.Element("Title")),
Date = (myTutorial.Date = (DateTime)tutorial.Element("Date")),
}).First();

关于c# - 使用 LINQ 解析 XML 并填充现有对象的属性而不是创建新的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4397740/

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