【发布时间】:2020-02-18 14:02:10
【问题描述】:
我想输出文件名数组中的所有值,并通过 Where 指令将它们过滤掉。我试图循环它。问题是,这些值显示了两次。
var files = from file in Directory.EnumerateFiles(Path, "*.TXT", SearchOption.AllDirectories)
from line in File.ReadLines(file)
where line.Contains(Filename[i])
select new
{
File = file,
Line = line
};
foreach (var line in files)
{
Console.WriteLine($"{line.Line}");
}
【问题讨论】:
-
您能否edit 您的问题包括一些示例输入(即您正在处理的文件及其内容的代表性列表)和示例输出?
-
尝试创建最小复制集。例如,定位一个包含单个文件的目录。在这种情况下,值是否显示两次?
-
文件名可能出现在多个子文件夹中。那么你想包含完整的路径名以使文件名唯一吗?或者使用 Distinct() 过滤重复项?
-
我不会评论你的算法应该做什么以及有哪些可能的优化,但你需要意识到字符串
aabc.txt包含字符串abc.txt。跨度> -
您能用简单的英语描述一下这个问题吗?所以你在一些
path中有*.txt文件;现在你想枚举文件这样(请问条件是什么?)