You can use the yield keyword to hold and return the data to the caller. See below for an example.
Public static IEnumerable ExampleMethod(){ List li = new List(); foreach (int item in li) { if (item 3) { li.Add(i); } } //Instead of the above, you could use Yield like below foreach (int item in ListCollection) { if (item 3) yield return item; }}