-4

ファイル (既に作成済み) から読み取るプログラムを作成しようとしています。

次に、プログラムは前述のファイルを別のファイルと比較する必要があります(これも私が持っています)。

誰かがこれを手伝ってくれますか?最初のファイルを読み取る必要がある部分は既に作成しています。また、それが役立つ場合は、コンソール アプリケーションを使用しています。

4

2 に答える 2

1

Enumerable.Exceptセットの違いを生み出す単純なLinqアプローチ:

var file1 = File.ReadAllLines(path1);
var file2 = File.ReadAllLines(path2);
var onlyInFileA = file1.Except(file2);
var onlyInFileB = file2.Except(file1);

foreach(string line in onlyInFileA)
{
    // ...
}
foreach(string line in onlyInFileB)
{
    // ...
}

大文字と小文字を区別しないで比較することもできることに注意してください。次のオーバーロードを使用するだけですExcept

var onlyInFileA = file1.Except(file2, StringComparer.OrdinalIgnoreCase);
于 2013-01-21T20:40:09.670 に答える
1

これは考えられる簡単な解決策です。

String[] file1Lines = File.ReadAllLines(path1);
String[] file2Lines = File.ReadAllLines(path2);

for (int i = 0; i < Math.Max(file1Lines.Length, file2Lines.Length); i++)
{
    if (i > file1Lines.Length)
        /* missing from file 1 */ ;
    else if (i > file2Lines.Length)
        /* missing from file 2); */ ;
    else if (file1Lines[i].Equals(file2Lines[i]))
        /* lines are equal */ ;
    else
        /* lines are different */ ;
}
于 2013-01-21T20:48:05.863 に答える