这是代码:
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
)。如果你想加载文件的内容,那么你可以使用(例如)File.ReadAllLines
:
var lines = File.ReadAllLines("d:\Keywords.txt");
if(lines.Contains(line))
{
// do something
}
类方法的完整列表File
可用@MSDN 文件类
因为字符串“d:\Keywords.txt”不包含丹尼尔行
因为您没有加载文件,所以您正在检查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
包含 value Daniel
。您没有打开文件并查看其内容。事实并非如此,因此您正在使用 else 语句。
查看 MSDN 关于如何从文件中读取文本的文档
此处的 Contains 调用是检查实际字符串 @"d:\Keywords.txt" 是否包含您的搜索字符串,而不是关键字.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
}