static List <List <string> > FindDuplicateFilesInHashedFilesList(IEnumerable <HashedFilesList.HashedFilePathPair> list)
        {
            using (var hashesList = new SimpleDiskStoredStringList())
            {
                using (var duplicateHashesList = new SimpleDiskStoredStringList())
                {
                    foreach (var pair in list)
                    {
                        if (hashesList.Contains(pair.Hash))
                        {
                            if (!duplicateHashesList.Contains(pair.Hash))
                            {
                                duplicateHashesList.Add(pair.Hash);
                            }
                        }
                        else
                        {
                            hashesList.Add(pair.Hash);
                        }
                    }

                    var duplicateFilesLists = new List <List <string> >();
                    foreach (var duplicateHash in duplicateHashesList)
                    {
                        var duplicatePaths = new List <string>();
                        duplicatePaths.AddRange(list.Where((pair) => pair.Hash == duplicateHash).Select(pair => pair.FullPath));
                        duplicateFilesLists.Add(duplicatePaths);
                    }
                    return(duplicateFilesLists);
                }
            }
        }