Question: why ilist instead of list?
Answer: The reason to use IList instead of List as parameters, is because many things implement IList (List and [], as two examples), but only one thing implements List . It's more flexible to code to the interface. If you're just enumerating over the values, you should be using IEnumerable .