Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将文件与20个其他文件进行比较,以计算匹配数_C# - Fatal编程技术网

C# 将文件与20个其他文件进行比较,以计算匹配数

C# 将文件与20个其他文件进行比较,以计算匹配数,c#,C#,我有20个文件,我想一个接一个地与master.txt文件进行比较,如果有任何匹配,程序会给出两个文件之间的匹配总数,我尝试使用以下代码: using System; using System.IO; using System.Collections.Generic; using System.Linq; namespace ConsoleApplication1 { class Program { static void Main() { int found

我有20个文件,我想一个接一个地与master.txt文件进行比较,如果有任何匹配,程序会给出两个文件之间的匹配总数,我尝试使用以下代码:

using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;

namespace ConsoleApplication1

{
class Program
{
    static void Main()
    {
        int found;
        int count = 0;
        string[] content = File.ReadAllLines(@"C:\master.txt");
        string[] mastercontent = File.ReadAllLines(**ineed to pass more than filename** );
        foreach (string con in content)
        {
            if (mastercontent.Contains(con))
            {
                found = 1;
                count = count + found;
            }

            // else
            // { 
            //Console.WriteLine("no match");
            // }
            Console.WriteLine(count);
        }
    }
}
}

我在向文件传递多个文件路径时遇到问题。ReadAllLines()

获取要读取的文件名数组或列表

我只是向您展示要实现的逻辑。您可以以适当的方式对其进行编码

string[] mastercontent = null;
foreach(string file in  filenames)
{
 mastercontent += File.ReadAllLines(file);

}

在外部级别放置另一个循环或将其提取到另一个函数/方法“CompareWithMaster(strign fileName)”,您可以将文件名列表传递给它

您可能希望首先进行一些优化(可能检查文件大小和内容)

试试这个

string[] listOfFiles = {"file1.txt","file2.txt"};
List<string> allLines = new List<string>();

foreach (var path in listOfFiles)
{
    allLines.AddRange(File.ReadAllLines(path));
}

//allLines now contains the lines from all files in listOfFiles
string[]listOfFiles={“file1.txt”,“file2.txt”};
List allLines=新列表();
foreach(listOfFiles中的var路径)
{
AddRange(File.ReadAllLines(path));
}
//allLines现在包含listOfFiles中所有文件中的行
或者使用字典进行更快的查找

    string[] listOfFiles = {"file1.txt","file2.txt"};
    Dictionary<string,string> allLines = new Dictionary<string,string>();

    foreach (var path in listOfFiles)
    {
        foreach (var line in File.ReadAllLines(path))
        {
            if (!allLines.ContainsKey(line))
            {
                allLines.Add(line,string.Empty);
            }
        }
    }
string[]listOfFiles={“file1.txt”,“file2.txt”};
Dictionary allLines=新字典();
foreach(listOfFiles中的var路径)
{
foreach(文件中的var行.ReadAllLines(路径))
{
如果(!allLines.ContainsKey(行))
{
添加(行,字符串,空);
}
}
}