I have a Type of {System.Collections.ObjectModel.ObservableCollection} and it implements the following interfaces

This is my code to check if the type implements IList
if (type.IsGenericType && type.GetInterfaces().Contains(typeof(IList<>)))
{
type = type.GetGenericArguments()[0];
enclosedType = EnclosedType.List;
}
Why doesn't this work? I feel like I'm missing something obvious.
As stated below. It implements
IList<TheType>and notIListYou need to check the generic type definitions for the interfaces.Example: