Cached empty collections
Your solution is absolutely correct and practical. 

In fact Enumerable.Empty&lt;T&gt; also returns empty array under the hood, just slightly in a different way (they have a separate instance holder class that is lazily initialized).