组散列文件的哈希值

时间:2014-07-28 19:49:41

标签: c# linq

我正在编写一个控制台程序,它应该显示重复文件组。 我有一个方法返回文件的完整路径集合:

public IEnumerable<String> GetFullPath(String fullPath)
{
    /*
     realisation
    */
    yield return new FileInfo(file).FullName;
}

我还有一个返回文件哈希值的方法:

public String GetMd5HashOfFile(String file)

一切正常;我可以显示文件的完整路径,我可以显示文件哈希值,但是如何显示具有相同哈希值的文件的完整路径组?组应以空行分隔。

1 个答案:

答案 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);
    }
}