一千萬個為什麽

搜索

VB.NET:在Linq中填充列表

假設我有以下XML文件:


     
          <title>The Lord of the Rings Trilogy</title>
          <title>Saving Private Ryan</title>
          <title>etc</title>
     
     
          <title>Foo</title>
          <title>Bar</title>
     

我所追求的是使用Linq to Xml來檢索MovieCollection類型的類。 MovieCollection有兩個屬性,OwnerName(String)和Movies(List(Of String))。

一般來說,我會做類似的事情:

From entry in movies..._
Select New MovieCollection With { _
.OwnerName = [email protected], _
.MovieCollection = entry.<title>.Value}

但是在這種情況下,這顯然不會起作用。無論如何使用Linq為MovieCollection列表填充所有為該所有者發生的電影?

最佳答案

您應該將標簽命名為 Movie MovieCollectionTitle Movie

解析您的XML:

Dim doc = XDocument.Parse("")

要麽

Dim doc = XDocument.Load("path")

並使用這個:

Dim movieCollections = From movieCol In doc.Root.Elements("Movie")
                       Select New MovieCollection() With
                              {
                                    .OwnerName = movieCol.Attribute("ownerName"),
                                    .Movies = movieCol.Elements("Title")
                                                      .Select(Function(m) m.Value)
                                                      .ToList()
                              }

轉載註明原文: VB.NET:在Linq中填充列表