using System.Collections.Generic;
private static readonly int[] ExcludedItems = { 21 };
private static int Check(int i)
Console.WriteLine("Checking " + i);
private static void ProcessItems(IEnumerable<int> items)
Console.WriteLine("ProcessItems() start");
foreach(var i in items.Except(ExcludedItems)) {}
Console.WriteLine("ProcessItems() end\n");
private static void ProcessReadOnlyItems(IReadOnlyList<int> items)
Console.WriteLine("ProcessReadOnlyItems() start");
foreach(var i in items.Except(ExcludedItems)) {}
Console.WriteLine("ProcessReadOnlyItems() end\n");
public static void Main()
var l = new List<int>() { 1, 7, 11, 21, 314, 535, 999 };
var items = l.Where(i => Check(i) > 0);
ProcessReadOnlyItems((IReadOnlyList<int>)items.Except(ExcludedItems).ToList());