これはコードです:
if (@"d:\Keywords.txt".Contains(line))
{
}
else
{
w.WriteLine(line);
}
Keywords.txt に次の行があることをメモ帳で確認します。
ダニエル
行は現在ダニエルですが、それでも w.WriteLine(line); を実行しています。
何故ですか ?
これはコードです:
if (@"d:\Keywords.txt".Contains(line))
{
}
else
{
w.WriteLine(line);
}
Keywords.txt に次の行があることをメモ帳で確認します。
ダニエル
行は現在ダニエルですが、それでも w.WriteLine(line); を実行しています。
何故ですか ?
"d:\Keywords.txt"
line
は文字列なので、 が文字列に含まれているかどうかを確認して"d:\Keywords.txt"
います (そうではないため、 に移動しelse
ます)。ファイルの内容をロードしたい場合は、 (eg) を使用できますFile.ReadAllLines
:
var lines = File.ReadAllLines("d:\Keywords.txt");
if(lines.Contains(line))
{
// do something
}
File
クラス メソッドの完全なリストを利用できます@MSDN ファイル クラス
文字列「d:\Keywords.txt」には Daniel 行が含まれていないため
ファイルをロードしていないため、文字列d:\Keywords.txt
をチェックしていますDaniel
ファイルを読み込んで内容を確認するには、試してください
string fileContents = System.IO.File.ReadAllText(@"d:\Keywords.txt");
if(fileContents.Contains(line))
{
//Desired code here
}
else
{
w.WriteLine(line);
}
if (File.ReadAllLines(@"d:\Keywords.txt").Any(x => x.Contains(line));
必要なものを取得するか、文字列を正確に一致させます
File.ReadAllLines(@"d:\Keywords.txt").Any(x => x.Equals(line));
d:\Keywords.txt
文字列に値が含まれているかどうかを確認していますDaniel
。ファイルを開いてその内容を見ているわけではありません。そうではないので、elseステートメントに到達しています。
ファイルからテキストを読み取る方法については、MSDN のドキュメントを参照してください。
ここでの Contains 呼び出しは、実際の文字列 @"d:\Keywords.txt" に、keywords.txt の内容ではなく、検索文字列が含まれているかどうかを確認しています。
次のようなものを試してください:
using (var sr = new StreamReader(@"d:\Keywords.txt"))
{
if (sr.ReadToEnd().ToString().Contains(line) == false)
{
w.WriteLine(line);
}
}
最初にファイルから行を読み取る必要があります
string[] lines = File.ReadAllLines(@"d:\Keywords.txt");
foreach (string line in lines)
{
// check for your "line" here
}