In C#, given that:
IEnumerable<T>declaresWhere(Func<T, bool>)IQueryable<T>extendsIEnumerable<T>IQueryable<T>declaresWhere(Expression<Func<T, bool>>))
When using this:
var list = new List<int>();
var positives = list.AsQueryable().Where(x => x > 0);
How does the C# compiler distinguish between both methods?