check if string exists in a file

BryanZest picture BryanZest · Dec 1, 2013 · Viewed 28.4k times · Source

I have the following piece of code which opens a text file and reads all the lines in the file and storing it into a string array.

Which then checks if the string is present in the array. However the issue I'm facing is that whenever a string is found, it always shows "there is a match" as well as "there is no match". Any idea how to fix this?

check this code:

using (StreamReader sr = File.OpenText(path))
{
    string[] lines = File.ReadAllLines(path);
    for (int x = 0; x < lines.Length - 1; x++)
    {
        if (domain == lines[x])
        {
            sr.Close();
            MessageBox.Show("there is a match");
        }
    }
    if (sr != null)
    {
        sr.Close();
        MessageBox.Show("there is no match");
    }
}

Answer

Ronan Thibaudau picture Ronan Thibaudau · Dec 1, 2013

Sounds overly complex, no reason to check by line or anything if you want to know if a string is present in a file. You can replace all of your code simply with :

if(File.ReadAllText(path).Contains(domain))
{
    MessageBox.Show("There is a match");
}