You made your method generic, so after SomeMethod<SomeClass>
SomeClass
is no longer your class, it's a generic parameter, which can be replaced by anything when you actually call the method.
Your extension method shouldn't be generic:
public static List<SomeClass> SomeMethod(this IEnumerable<SomeClass> list, int id)
{
List<SomeClass> result = new List<SomeClass> ();
foreach (SomeClass something in list)
{
if(something.SomeProperty.SomeList.Contains(id))
{
result.Add (something);
}
}
return result;
}