Comparer deux fichiers texte ligne par ligne

Sous ici, j'ai décrit un exemple de Scénario:

"FileA-Database.txt" contient les noms suivants:

KB200

KB300

KB400

"FileB-Slave.txt" contient les noms suivants:

KB600

KB200

KB400

KB700

Je veux comparer l' "FileA-Database.txt" avec "FileB-Slave.txt" et de laisser les valeurs manquantes être remplis automatiquement dans le "FileA-Database.txt" fichier aussi j'ai besoin d'afficher les valeurs manquantes dans un fichier texte appelé "Results.txt".

Le code doit être compatible avec le C# (framework 4.0+) s'il vous plaît!.

J'ai besoin d'une approche simple, le mien ne fonctionne pas exactement de la façon dont je veux:

    private void button_compare_Click(object sender, EventArgs e)
        {
            string fileA, fileB, fileC;
            fileA = "database-critical.txt";
            fileB = "patchlist.txt";
            fileC = "result.txt";

            string alphaFilePath = fileA;

            List<string> alphaFileContent = new List<string>();

            using (FileStream fs = new FileStream(alphaFilePath, FileMode.Open))
            using(StreamReader rdr = new StreamReader(fs))
            {
                while(!rdr.EndOfStream)
                {
                    alphaFileContent.Add(rdr.ReadLine());
                }
            }

            string betaFilePath = fileB;

            StringBuilder sb = new StringBuilder();


            using (FileStream fs = new FileStream(betaFilePath, FileMode.Open))
            using (StreamReader rdr = new StreamReader(fs))
            {
                while(! rdr.EndOfStream)
                {
                    string[] betaFileLine = rdr.ReadLine().Split(Convert.ToChar(","));

                    if (alphaFileContent.Contains(betaFileLine[0]))
                    {
                        sb.AppendLine(String.Format("{0}", betaFileLine[0]));
                    }
                }
            }

using (FileStream fs = new FileStream(fileC, FileMode.Create))
        using (StreamWriter writer = new StreamWriter(fs))
        {
            writer.Write(sb.ToString());
        }
    }

            //End
        }

OriginalL'auteur Developman | 2013-01-16