.net - LINQ 是否保证从 XDocument 读取的项目顺序?

标签 .net xml linq

所以我正在做的是使用 xml 文档来确定数据库更新需要运行某些 SQL 脚本的顺序。

XML 遵循这种格式

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

因此,在数据库中执行所有 sql 文件的类会在更改其连接时查看此文件,并根据配置文件告诉它执行的操作从文件夹中执行文件。

现在我的问题是:

假设我有一个包含 4 个 Database 节点的文档,每个节点都有 nFolder 节点,里面有一个里面的各种文件节点。

如果在 For Each 中循环遍历我检索到 XElement 中的 Database 节点,我是否合乎逻辑?使用 database.Elements("Database") 它们将按照它们在 xml 文件中出现的顺序被提取? (文件节点也一样)

据我所知,情况确实如此,但我只是想在开始将其用于生产数据库之前进行验证。

最佳答案

是的,Elements按文档顺序返回元素。来自 the docs ,在“返回值”中:

An IEnumerable<T> of XElement containing the children of the XContainer that have a matching XName, in document order.

关于.net - LINQ 是否保证从 XDocument 读取的项目顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3291010/

相关文章:

.net - 使用 vb.net 从字符串中删除回车符

c# - 为什么字符串 "\u0022"以这个字符串 "\u204D"开头

python - 如何简化我的代码 - 提取相同 xml 标记名称的所有节点值

java - 使用 XStream 将字符串日期时间转换为 Java Long

c# - 如何从 MethodCallExpression 访问 OrderBy 子句

c# - 使用参数 c# 查找列表的索引

.net - 在 VB.NET 中保存数千个文件的最快方法?

c# - 为什么 EntityFramework 在 edmx 中默认在数据库实体后面附加 1?

xml - 多个重复字段上的 MarkLogic TDE xpath

c# - 如何使用 LINQ 填充类中的集合?