C#匹配两个文本文件然后复制出来

时间:2010-05-05 13:26:49

标签: c#

我要做的是两个文件,一个文件包含:

橙 苹果

第二个文件包含 橙色〜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);
                }
            }

1 个答案:

答案 0 :(得分:2)

您正在调用数组上的LINQ Contains方法,如果数组包含的字符串恰好等于con,则返回true。

最简单的解决方案是通过调用mastercontentFile.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))