Si tiene la consulta en una variable (no en un procedimiento almacenado) y no tiene una gran cantidad de ID, puede crear su propia IN. No he probado la velocidad de este enfoque.
Este código no compilará, es solo para darle una idea.
query = "SELECT * FROM table WHERE col IN ("
For t = 0 TO x.Length-1
If t > 0 Then query &= ","
query &= "@var" & t
Next
query &= ")"
...
For t = 0 TO x.Length-1
cmd.Parameters.Add("@var" & t, SqlDbType.Int).Value = x(t)
Next