Is there another way to write something like this:
if (a == x || a == y || a == z)
One way that I found is doing it like this:
Your solution to rewrite it as
if( new [] {x,y,z}.Contains(a))
is not a good move.
You've take a simple efficient logical operation, which every programmer easily understands and which contains short-circuiting logic to speed it up and instead you've produced code that requires a moment to understand and which is considerably less efficient.
Sometimes your fellow engineers will prefer it if you don't try to be "clever"!