using System.Collections;
using System.Collections.Generic;
public static void Main()
Console.WriteLine("Declaring var items = GetItems(); inside the loop");
for (int i = 0; i < 3; i++)
var inside_Items = GetItems();
foreach (var item in inside_Items)
Console.WriteLine("Declaring var items = GetItems(); outside the loop");
var outside_Items = GetItems();
for (int i = 0; i < 3; i++)
foreach (var item in outside_Items)
Console.WriteLine("To only enter GetItems once, materialize the IEnumerable to eg a List by calling .ToList");
var outsideOnlyOnce_Items = GetItems().ToList();
for (int i = 0; i < 3; i++)
foreach (var item in outsideOnlyOnce_Items)
static IEnumerable<string> GetItems()
Console.WriteLine("Entered GetItems");
Console.WriteLine("Exited GetItems");