UPDATE : the cake is a lie ! see this post, thanks to the below discussion, this method is faster in a very particular case (and as a matter of fact I was always falling into that case), which itself can be treated as fast with an alternate better fitting solution (see NPFS3000 post). So this thread still have the fastest solution, but it's not in this OP ^^ _______________________________ Hello, Vet coders will undoubtedly know this, but this is something I found a while ago after trying to milk the fastest possible string Contains. So it might help some people who didn't come to be aware of that. In Unity, String comparisons and operations are much needed for animationClip-heavy games, or even just for complicated state machines. Actually, the default string.Contains() or IndexOf() are horribly slow. But it comes to a simple option to make it far much faster. Just ignoring culture and casing by turning it to an IndexOf test, while putting "System.StringComparison.OrdinalIgnoreCase" in the function (as Contains() doesn't have this option afaik). Unless you have tons of different state names / animationClips, you don't need to separate them by case. So here we go. Test 1 (native Contains method) : Code (csharp): for (int i = 0; i < 100000; i++) return _clipName.Contains("VeryLongName"); Test 2 (Contains OrdinalIgnoreCase method) : Code (csharp): for (int i = 0; i < 100000; i++) return _clipName.IndexOf("VeryLongName", System.StringComparison.OrdinalIgnoreCase) != -1; Test 1 : 16 ms. Test 2 : 4 ms. So "emulating" a Contains() by using an IndexOf with OrdinalIgnoreCase is 400% faster than the builtin Contains(). Remember it's tested on a PC (Intel i7 920), so you can expect 10 to 30 times longer durations on mobile.