gpt4 book ai didi

c# - 如何自定义对 Directory.GetFiles() 的返回值进行排序

转载 作者:行者123 更新时间:2023-11-30 20:38:44 24 4
gpt4 key购买 nike

我正在加载放置在字符串数组中的目录中的文件列表。我正在使用 System.IO.Directory.GetFiles(),

String[] path = Directory.GetFiles(batchElements[j].DocIdPath, "*.csv", SearchOption.AllDirectories);

我假设返回值的默认排序顺序是按名称排序。所以我的文件按以下顺序加载。

  • 2713_CFPB 结算费用 Booklet_2713_1.csv
  • 2713_CFPB 结算费用 Booklet_2713_10.csv
  • 2713_CFPB 结算费用 Booklet_2713_11.csv
  • 2713_CFPB 结算费用 Booklet_2713_2.csv
  • 2713_CFPB 结算费用 Booklet_2713_3.csv
  • 2713_CFPB 结算费用 Booklet_2713_4.csv
  • 2713_CFPB 结算费用 Booklet_2713_5.csv
  • 2713_CFPB 结算费用 Booklet_2713_6.csv
  • 2713_CFPB 结算费用 Booklet_2713_7.csv
  • 2713_CFPB 结算费用 Booklet_2713_8.csv
  • 2713_CFPB 结算费用 Booklet_2713_9.csv

但我想按此顺序收集值。

  • 2713_CFPB 结算费用 Booklet_2713_1.csv
  • 2713_CFPB 结算费用 Booklet_2713_2.csv
  • 2713_CFPB 结算费用 Booklet_2713_3.csv
  • 2713_CFPB 结算费用 Booklet_2713_4.csv
  • 2713_CFPB 结算费用 Booklet_2713_5.csv
  • 2713_CFPB 结算费用 Booklet_2713_6.csv
  • 2713_CFPB 结算费用 Booklet_2713_7.csv
  • 2713_CFPB 结算费用 Booklet_2713_8.csv
  • 2713_CFPB 结算费用 Booklet_2713_9.csv
  • 2713_CFPB 结算费用 Booklet_2713_10.csv
  • 2713_CFPB 结算费用 Booklet_2713_11.csv

感谢帮助。

最佳答案

你可以这样做:

  • 仅使用 Path.GetFileNameWithoutExtension 获取文件名
  • 根据 _ 拆分它们
  • 获取最后一项
  • 使用 int.Parse 解析它或 int.TryParse
  • OrderBy 中使用该值使用 LINQ

代码:

var output = path.OrderBy(p => 
int.TryParse(Path.GetFileNameWithoutExtension(p).Split('_').Last(), out temp) ?
temp : int.MaxValue);

如果你需要一个数组或List<T>作为输出然后附加 ToArray()ToList()到查询。

关于c# - 如何自定义对 Directory.GetFiles() 的返回值进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34859475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com