C# 3.0 按一定顺序执行.sql文件列表

C# 3.0 按一定顺序执行.sql文件列表,c#-3.0,C# 3.0,我有一个目录,其中有许多.sql文件。我可以执行它们。但是,我想按一定的顺序执行它们。例如,如果我有4个文件xy.sql、dy.sql、trim.sql和see.sql。我想在see.sql、dy.sql、trim.sql和xy.sql中执行它们。现在,我使用DirectoryInfo对象得到一个文件列表。现在,我需要使用我的顺序对它们进行排序。我使用的是C#3.5 谢谢不清楚文件名的排序算法是什么。它似乎并不完全由文件名决定(如字母顺序) 如果您有执行这些脚本的任意顺序,我建议您创建一个定义该

我有一个目录,其中有许多.sql文件。我可以执行它们。但是,我想按一定的顺序执行它们。例如,如果我有4个文件xy.sql、dy.sql、trim.sql和see.sql。我想在see.sql、dy.sql、trim.sql和xy.sql中执行它们。现在,我使用DirectoryInfo对象得到一个文件列表。现在,我需要使用我的顺序对它们进行排序。我使用的是C#3.5


谢谢

不清楚文件名的排序算法是什么。它似乎并不完全由文件名决定(如字母顺序)

如果您有执行这些脚本的任意顺序,我建议您创建一个定义该顺序的附加文件,并使用该文件来驱动排序


如果文件名列表在编译时是已知的,您可以在代码中按顺序硬编码。但是,根据您的问题,我假设文件集可能会更改,并且可能会添加新的文件。如果是这种情况,请参阅我的上一段。

您可以获得一个包含所有
.sql
文件的
列表,然后调用
List.sort
函数对其进行排序,然后根据新排序的顺序对文件进行操作。

最好重命名文件,以便它们按正确的顺序进行本机排序。这样可以避免在某个地方维护单独的“执行顺序”列表

使用公共前缀作为sql文件名也有点自我记录,例如

exec1_see.sql
exec2_dy.sql
exec3_trim.sql and 
exec4_xy.sql

对它们进行编号,并尽可能使用my或

等工具,这种方法可能很脆弱——它假设创建文件的人和运行该实用程序的人都知道存在命名约定。我同意,如果创建文件的人和运行该实用程序的人不协调,总是有可能发生灾难。在这种情况下,像执行顺序列表(特别是硬编码)这样的额外文档如何降低风险?