You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

List<FileInfo> 排序问题:按指定规则对目录文件列表排序

List 排序问题:按指定规则对目录文件列表排序

嗨,这个需求很清晰,咱们直接通过给不同文件分配排序优先级的方式就能轻松实现,用LINQ的OrderBy配合自定义判断逻辑就搞定了,我给你具体的实现步骤和代码:

核心思路

我们给三类文件分别设置排序权重,让权重越小的排在越前面:

  • 文件名以start_开头的文件,权重设为0(最优先)
  • 既不是start_也不是end_开头的普通PDF,权重设为1
  • 文件名以end_开头的文件,权重设为2(最后排)

具体代码实现

首先获取目标目录下的PDF文件列表,然后用OrderBy根据我们定义的权重排序:

// 初始化目录对象
var tempDir = new DirectoryInfo(@"C:\temp");
// 获取目录下所有PDF文件
var fileList = tempDir.GetFiles("*.pdf").ToList();

// 按规则排序
var sortedFileList = fileList.OrderBy(file => 
{
    // 按文件名前缀判断排序权重
    if (file.Name.StartsWith("start_", StringComparison.OrdinalIgnoreCase))
        return 0;
    if (file.Name.StartsWith("end_", StringComparison.OrdinalIgnoreCase))
        return 2;
    return 1;
}).ToList();

细节说明

  • 我在StartsWith里加了StringComparison.OrdinalIgnoreCase,这样就算文件名是Start_342844.pdf或者END_342844.pdf这种大小写混合的情况,也能正确匹配规则;如果你确定文件名是严格小写的start/end前缀,也可以去掉这个参数,不影响核心功能。
  • 这个逻辑的扩展性很好,如果以后需要新增其他前缀的排序规则,只需要在判断里加对应的权重分支就行。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 06:50:29