Dot-Net

LINQ 從 XDocument 讀取的項目順序是否有保證?

  • July 20, 2010

所以我正在做的是使用 xml 文件來確定數據庫更新需要執行某些 SQL 腳本的順序。

XML 遵循這種格式

<ScriptRules>
   <Database databaseName = “string”>
       <Folder folderPath = “string” executeAllFiles = boolean>
           <file order=”first or last”>“Filename”</file>
       </Folder>
   </Database>
</ScriptRules>

因此,執行sql數據庫上所有文件的類會查看它的連接更改並根據配置文件告訴它執行的操作從文件夾中執行文件。

現在我的問題是:

假設我有一個包含 4Database個節點的文件,每個節點內部都有n多個Folder節點,其中包含各種file節點。

我假設如果在我檢索到For Each的節點上的循環內部使用它們將按照它們出現在 xml 文件中的順序被拉出,這是否合乎邏輯?(對於文件節點相同)Database``XElement``database.Elements("Database")

據我所知,情況確實如此,但我只是想在開始在生產數據庫上使用它之前進行驗證。

Elements的,按文件順序返回元素。從docs,在“返回值”中:

IEnumerable<T>按文件順序包含具有匹配的XElement 的子 級的 。XContainer``XName

是的,只要您不使用 PLINQ,即使那樣您也可以要求它按順序為您提供元素。

var orderedCities = (from city in cities.AsParallel().AsOrdered()
                                where city.Population > 10000
                                select city)
                               .Take(1000);

http://msdn.microsoft.com/en-us/library/dd460677.aspx

引用自:https://stackoverflow.com/questions/3291010