我在ASP中有以下LINQ。NET 4.0。我正在通过XML文件读取数据,并试图将结果过滤到强类型对象中。
List<Books> books = (from q in _XmlConnection.Descendants("BookShelf")
select new
{
Title = q.Element("title").Value,
Author = q.Element("autor").Value
}).ToList();
现在我可以做的是在这条语句之后运行foreach,并创建一个新的Books对象,该对象被分配给一个列表。我想做的是将所有这些都包含在LINQ语句中,这样当我为Title或Author定义值时,它会将其赋值给List<书>马上就来。这样我就可以直接跳转到"还书"。有办法做到这一点吗?书>
(注意:上面的代码返回一个错误,但现在这是好的。我可以使用"var books",它工作得很好,但我把它留在这里,以显示我希望它看起来像什么)。
欢呼:)
你几乎就在那里-现在你正在投射到一个匿名类型(使用new {}
) -投射到一个类实例,而不是你需要指定类名,所以假设你的Book
类有公共属性Title
和Author
:
List<Book> books = (from q in _XmlConnection.Descendants("BookShelf")
select new Book()
{
Title = q.Element("title").Value,
Author = q.Element("autor").Value
}).ToList();
编辑:你的例子是使用类型Books
-我假设,虽然类,持有单一的书的属性被命名为 book (单数)。
List<Books> books = (from q in _XmlConnection.Descendants("BookShelf")
select new Book()
{
Title = q.Element("title").Value,
Author = q.Element("autor").Value
}).ToList();