我正在使用下面的代码文件名列表的:最好的办法让只有某些集团一个字符串
//Set up Datatable
dtUpgradeFileInfo.Columns.Add("BaseFW");
dtUpgradeFileInfo.Columns.Add("ActiveFW");
dtUpgradeFileInfo.Columns.Add("UpgradeFW");
dtUpgradeFileInfo.Columns.Add("FileName");
//Gets Upgrade information and upgrade Files from Upgrade Folder
DirectoryInfo di = new DirectoryInfo(g_strAppPath + "\\Update Files");
FileInfo[] rgFiles = di.GetFiles("*.txt");
foreach (FileInfo fi in rgFiles)
{
test1 = fi.Name.ToString();
}
所有文件名会在形式BXXXX_AXXXX_UXXXX。当然,X代表0-9的数字,我需要这3组数字来将每个数据放到数据表的相应列中。我最初打算获得代表每个分组的字符,并将它们组合在一起,但是我想知道是否有比将它发送给charArray更好的方法/更快的方法。有什么建议么?
正则表达式是definitly做到这一点的好办法,并留下了花费在解决许多更复杂的问题毫不费力的开口。唯一的耻辱是MS使用Regex比其他解决方案稍微复杂一些。 – Neowizard 2010-10-19 09:28:47
如果输入是固定形式,则效率也不高。性能明智,String.Split应优先使用reg-ex。 – 2010-10-19 14:04:18
@Michael Goldshteyn,这取决于你的优化。从CPU循环的角度来看,精心制作的手写代码解析例程通常能够胜过正则表达式。但是,除非您要处理数千个项目,否则性能差异可能无关紧要。 RegEx方法具有验证文件名与预期模式的一致性的附加好处(某人在目录中丢弃readme_before_running.txt将导致其他方法出错)。另外它可以更容易地调整以支持其他有效格式。 – 2010-10-20 04:32:49