Static ConcurrentDictionary to maintain static objects
public List&lt;InstanceField&gt; GeKeysFromCache(string cacheKey)
{
    var resultSet = m_InstancesCached.GetOrAdd(cacheKey, (key) =&gt;
   {
       return new List&lt;InstanceField&gt;();
   });

    return resultSet.ToList();
}



Why so many returns and when you can simply do this with only one return and without the lambda:

return m_InstancesCached.GetOrAdd(cacheKey, new List&lt;string&gt;()).ToList();