Improving performance / caching - C#