首页 > 解决方案 > 按数组中文件名中的前 13 个字符对我从光盘读取的 XML 文件进行排序

问题描述

我需要按文件名分隔文件。我正在考虑按方法类型排序,并将具有相同 13 个第一个字符的文件放在一个数组或其他东西中。

所以到目前为止,我已经阅读了特定文件夹中的所有“Xml”文件并将它们放入一个数组中。

var filePath = @"C:\Users\Adam_\Desktop\MiP";  

var di = new DirectoryInfo(filePath);

FileInfo[] files = di.GetFiles("*.xml");

foreach (FileInfo file in files)
{
    var doc = new XmlDocument();
    doc.Load(file.FullName);

标签: c#.net

解决方案


实际上你可以做类似的事情files.OrderBy(x=> x.Name) 那不是按 13 个第一个字符排序,但如果不是关键要求,这个排序是有效的。或您的完整要求版本,但有点尴尬:

files.OrderBy(x=> x.Name.Length > 12 ? x.Name.Substring(0, 13) : x.Name)

分组数据

var grouped = files.GroupBy(x => x.Name.Length > 12 ? x.Name.Substring(0, 13) : x.Name).ToLookup( x=> x.Key, x => x.ToList());

推荐阅读