Представьте, что у вас есть метод, который внутренне использует объект IDisposable (например, streamreader) и возвращает возвращаемые элементы, поскольку они считываются из файла. Вот так:
public IEnumerable<YourObject> Read(string filename)
{
using(var filestream = new FileStream(filename, FileMode.Open))
{
using(var reader = new StreamReader(filestream))
{
string line;
while((line = reader.ReadLine()) != null)
{
yield return new YourObject(line);
}
}
}
}
Будет ли отображаться reader
и filestream
, когда я использую LINQ-методы, которые не выполняют итерацию полной коллекции?
YourOjbect firstLine = Read("myfile.txt").First();