在每个场景中,我将有数百个.tif文件需要与irfanview合并。这些文件的命名是为了在连字符之前匹配字符串表示它们需要合并(一小组文件名示例如下:0001-1.tif,0001-2.tif,0001-3.tif,0002 -1.tif,0002-2.tif,0003.tif,0004-1.tif,0004-2.tif)。有没有办法通过字符比较将具有相同“前缀”的文件放入自己的数组中,或者修改文件名更容易?我想把所有的“0001”变成一个数组,然后是所有的“0002”等等。有人能以最简单的方式提出建议吗?
看起来它会完美运行,但VS无法识别Substring。是因为我试图将一组文件插入“GroupBy”吗?这是我到目前为止所做的:
int i = 0;
string filmtext = textBox1.Text;
string[] filmPath = Directory.GetFiles(filmtext);
string filmfile = Path.GetFileName(filmPath[i].ToString());
filmfile.GroupBy(s => s.Substring(0,4))
.Select(g => g.ToList())
.ToList();
答案 0 :(得分:3)
你可以按前四个字符分组:
filenames.GroupBy(s => s.Substring(0,4))
将返回表示该组中文件名的组的集合,Key
值是您分组的4个字符。
要创建可以执行的分组列表:
List<List<string>> groups =
filenames.GroupBy(s => s.Substring(0,4))
.Select(g => g.ToList())
.ToList();