The only reason that I can see, that this code wouldn’t work:
for (int i = 0; i < cheatCache.Count; i++)
Is if the cheatCache is null || empty; or actually equal to 0. Is the cheatCache within the scope of the function? For testing purpose you should check the value of cheatCache.Count, just before you run the for .. loop. Output it to console or something.
Lastly, since you only posted a small fraction of the code, I can assume that cheatCache is an array? In this case:
The Count() extension method is not O(n) when used on an array. All arrays implement ICollection<T> so it will end up using the ICollection<T>.Count property, it won’t enumerate all the elements in the array. Source
Try using the Length property instead of Count.