private IEnumerable<string> Tables
yield return "Foo";
yield return "Bar";
IEnumerable doesn't support this. This is by design.
IEnumerable uses lazy evaluation to get the elements you ask for just before you need them.
If you want to know the number of items without iterating over them you can use
IList<T>, it has a