.NET Fiddle

CSharp · Console

/Program.cs

using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;

public class Program
{
	public void Main()
	{
		var log = new StringBuilder();
		foreach (var number in GetEnumerable(log))
		{
			log.AppendLine(number.ToString());
		}
		
		Console.WriteLine(log);
	}

	public static IEnumerable<int> GetEnumerable(StringBuilder log)
	{
		using (var context = new Context(log))
		{
			return Enumerable.Range(1, 5);
		}
	}
}

public class Context : IDisposable
{
	private readonly StringBuilder log;
	public Context(StringBuilder log)
	{
		this.log = log;
		this.log.AppendLine("Context created");
	}

	public void Dispose()
	{
		this.log.AppendLine("Context disposed");
	}
}
;