Reading resource txt line by line

Had a txt file on my desktop with code:

string source = @"C:\Users\Myname\Desktop\file.txt"
string searchfor = *criteria person enters*
foreach (string content in File.ReadLines(source))
{
if (content.StartsWith(searchfor)
{
*do stuff*
}
}

I recently just learned I can add the txt as a resource file (as it will never be changed). However, I cannot get the program to read that file.txt as a resource line by line like above. I have tried Assembly.GetExecutingAssembly().GetManifestResourceStream("WindowsFormsApplication.file.txt")

with a stream reader but it says invalid types.

Basic concept: user enters data, turned into a string, compared to the starting line of the file.txt as it reads down the list.

Any help?

edit Jon, I tried as a test to see if it is even reading the file:

        var assm = Assembly.GetExecutingAssembly();
        using (var stream = assm.GetManifestResourceStream("WindowsFormsApplication.file.txt")) ;
        {
            using (var reader = new StreamReader(stream))
            {
                string line;
                while ((line = reader.ReadLine()) != null)
                {
                    label1.Text = line;
                }
            }
        }

It says "The name stream does not exist in the current context" and "Possible Mistaken Empty Statement" for the stream = assm.Get line

Jon Skeet
people
quotationmark

You can use a TextReader to read a line at a time - and StreamReader is a TextReader which reads from a stream. So:

var assm = Assembly.GetExecutingAssembly();
using (var stream = assm.GetManifestResourceStream("WindowsFormsApplication.file.txt"))
{
    using (var reader = new StreamReader(stream))
    {
        string line;
        while ((line = reader.ReadLine()) != null)
        {
            ...
        }
    }
}

You could write an extension method on TextReader to read all the lines, but the above is simpler if you only need this once.

people

See more on this question at Stackoverflow