В показанном вами примере - нет смысла загружать в StringBuilder
в первую очередь. Вы уже возвращаете всю строку в вызове на StreamReader.ReadToEnd
, так что вы также можете просто проверить, содержит ли она вашу подстроку.
StringBuilder очень полезен, если вы меняете и мутируете строку - но в этом случае вы не являетесь.
Как насчет этого:
private bool FileContainsString(string file, string substring)
{
using (StreamReader reader = new StreamReader("C://myfile2.txt"))
{
return reader.ReadToEnd().Contains(substring);
}
}
Если вам определенно нужен строитель строк, то что-то вроде этого:
private bool FileContainsString(string file, string substring)
{
using (StreamReader reader = new StreamReader("C://myfile2.txt"))
{
var sb = new StringBuilder(reader.ReadToEnd());
return sb.ToString().Contains(substring);
}
}
но в этом конкретном сценарии StringBuilder на самом деле не делает ничего полезного.