10,000 views is once every 8 seconds ... not sure if you need to worry too much ... ;-p
But repeat the code - it's too complicated, and you can still initialize it twice anyway. I would just use a static constructor for this; It will be more reliable. If you must have a complete isolated lazy load (even with other static methods for the type), there is a trick with an inner class to achieve the same:
public class MyClass { static class InnerCache { internal static readonly IList<Entry> _listCache; static InnerCache() { List<Entry> tmp = new List<Entry>();
I would also be worried about the possibility of someone mutating the list — perhaps they would want to use the list as read-only!
source share