C# 文件名列表上的快速Linq操作

C# 文件名列表上的快速Linq操作,c#,string,performance,list,linq,C#,String,Performance,List,Linq,我有成千上万个文件的文件名格式: public static string mTimeFormat = "yyyyMMdd_HHmmss_fff__N"; 其中N可以是从1到一个大数字(比如1000000)的任意值 这些是子文件夹中列举的文件名-请不要问我如何和为什么-这是一个现有的项目-它的工作和它的速度。刚才必须添加N编号。这打破了最初由以下人员执行的文件范围的快速检索: // retrieve range of file names string t1 = startTime.ToStr

我有成千上万个文件的文件名格式:

public static string mTimeFormat = "yyyyMMdd_HHmmss_fff__N";
其中N可以是从1到一个大数字(比如1000000)的任意值

这些是子文件夹中列举的文件名-请不要问我如何和为什么-这是一个现有的项目-它的工作和它的速度。刚才必须添加N编号。这打破了最初由以下人员执行的文件范围的快速检索:

// retrieve range of file names
string t1 = startTime.ToString(mTimeFormat);
string t2 = endTime.ToString(mTimeFormat);
List<string> results = fileNameList.FindAll(s => (String.Compare(s, t1, true) > 0) && (String.Compare(s, t2, true) < 0));
//检索文件名的范围
字符串t1=startTime.ToString(mTimeFormat);
字符串t2=endTime.ToString(mTimeFormat);
List results=fileNameList.FindAll(s=>(String.Compare(s,t1,true)>0)和&(String.Compare(s,t2,true)<0);
为了保持现有代码正常工作(速度很快),我需要去掉“\un” 为了保持文件名范围的快速检索,将对文件名进行修改。 我试着遍历列表,但速度不够快…任何关于Linq操作的建议都会在一次快速操作中从每个文件名中删除“\u\N”?

而结尾部分“可以是任何内容”,第一部分应该是固定的,所以只需从那里取子字符串就可以了。然而,LINQ可能不会带来速度方面的好处,因为它也在内部迭代列表。但是,此代码可能值得一试:

var lengthOfFirstPart = "yyyyMMdd_HHmmss_fff".Length;
fileNameList = fileNameList
               .Select(f=>f.SubString(0, lengthOfFirstPart)
               .ToList(); // assuming it was a List<string> before
var lengthOfFirstPart=“yyyyymmdd\u HHmmss\u fff”。长度;
fileNameList=fileNameList
.Select(f=>f.SubString(0,lengthOfFirstPart)
.ToList();//假设它以前是一个列表

什么是不够快的代码?一个简单的迭代,您可以在其中找到一个索引“\uu N”,并将其子字符串添加到一个新列表中。。。