我正在编写一个控制台程序,它应该显示重复文件组。 我有一个方法返回文件的完整路径集合:
public IEnumerable<String> GetFullPath(String fullPath)
{
/*
realisation
*/
yield return new FileInfo(file).FullName;
}
我还有一个返回文件哈希值的方法:
public String GetMd5HashOfFile(String file)
一切正常;我可以显示文件的完整路径,我可以显示文件哈希值,但是如何显示具有相同哈希值的文件的完整路径组?组应以空行分隔。
答案 0 :(得分:0)
使用GroupBy
。
var allFiles = getAllFiles(fullPath); // or whatever
return allFiles.GroupBy(c => GetMd5HashOfFile(c));
然后您可以随意使用它,例如:
foreach (var v in grouped)
{
Console.WriteLine("Hash: {0}", v.Key);
foreach (var f in v)
{
Console.WriteLine("\t{0}", f);
}
}