C# Generic type comaprison : I have this Code

    public class myList<T> where T : struct
    {
        public int number { get; set; }
    }

    public class TypeTest
    {
        public static int GetNumber(object x)
        {
            //  if (x.GetType() == typeof(myList<>)) // this works
            if (x is myList<>) // how is the correct syntax for this?
            {
                int result = ((myList<>)x).numb; //does not compile
                return result;
            }
            return 0;
        }
    }

But some generic syntax issues.  

Question: How is the correct Syntax for this?