gpt4 book ai didi

c# - 如何对包含代表文件名的字符串的集合进行排序?

转载 作者:行者123 更新时间:2023-11-30 20:39:42 26 4
gpt4 key购买 nike

我有一些包含 500 个文件的文件夹。每个文件名都是一个 int => 这意味着每个文件名例如 1.txt 或 40.txt

在我的代码中,我将所有这些文件名加载到数组中

string[] allFiles = Directory.GetFiles(folderPath, "*.txt");

现在我需要按照文件名作为排序键 (1.txt) 的方式对文件进行排序

怎么做?

最佳答案

目录 API 具有排序功能,但如果这不能正确处理字符串(意思是“1.txt”后跟“10.txt”而不是“2.txt”),您可以试试这个:

  string[] allFiles = Directory.GetFiles(folderPath, "*.txt")
.OrderBy(file =>
int.Parse(file.Substring(0, file.Length - 4)))
.ToArray();

这假设所有文件的格式都正确。如果这是有问题的,也许你想要这样的东西:

  string[] allFiles = Directory.GetFiles(folderPath, "*.txt")
.Select(file => {
var fileNamber;
if(!int.TryParse(
file.Substring(0, file.Length - 4), out fileNamber)
return (int?)null;
return (int?)fileNamber;
})
.Where(fileNamber => fileNamber.HasValue)
.OrderBy(fileNamber => fileNamber.Value)
.Select(fileNamber => fileNamber.Value + ".txt")
.ToArray();

关于c# - 如何对包含代表文件名的字符串的集合进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34057778/

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