我要做的是两个文件,一个文件包含:
橙 苹果
第二个文件包含 橙色〜1.TXT 橙色〜2321.txt 苹果〜12.txt 苹果〜23.txt 鸭〜23.txt 或或〜23.txt
我需要做的是,如果第一个文件与第二个文件中的一行匹配,则将该文件复制到新目录。我现在发生的事情从未找到任何匹配的项目。
string[] content = File.ReadAllLines(@"C:\Cact.txt");
string[] mastercontent = File.ReadAllLines(masterdin + "\\Master.txt");
foreach (string con in content)
{
if (mastercontent.Contains(con))
{
File.Copy(masterfolder + "\\" + con, masterdin);
}
}
答案 0 :(得分:2)
您正在调用数组上的LINQ Contains
方法,如果数组包含的字符串恰好等于con
,则返回true。
最简单的解决方案是通过调用mastercontent
将File.ReadAllText
更改为单个字符串
这将调用String.Contains
,并检查con
是否出现在大字符串中的任何位置。 (如果con
有换行符,则表现不同,但不能)
或者,您可以使用LINQ检查mastercontent
是否包含con
的任何字符串,如下所示:
if (mastercontent.Any(m => m.Contains(con))
编辑:要不区分大小写,您可以将其更改为以下内容:
if (mastercontent.Any(m => 0 >= m.IndexOf(con, StringComparison.OrdinalIgnoreCase))