我希望遍历两个目录。我知道可用的选项to iterate through each directory并将列表中的所有详细信息存储在列表中。我想知道是否有更好的方法在C#中实现这一点而不遍历每个目录并将详细信息存储在单独的列表中。要求是在遍历其中一个目录的所有内容时,我想比较每个项目该目录到第二个目录中的目录
答案 0 :(得分:6)
我想知道是否有更好的方法可以在C#中实现这一点,而无需遍历每个目录并将详细信息存储在单独的列表中。
在两个目录上使用EnumerateFiles
,压缩连接它们,然后通过foreach循环运行连接。
var firstFiles = Directory.EnumerateFiles(...);
var secondFiles = Directory.EnumerateFiles(...);
var joined = firstFiles.Zip(secondFiles,
(first, second) => new { First = first, Second = second });
foreach(var pair in joined)
{
// now do something with pair.First and pair.Second
}