using System.Collections.Generic;
using System.Linq.Expressions;
using System.Threading.Tasks;
namespace ConsoleApplication1
public static void Main(string[] args)
Console.WriteLine("Query 1");
var query1 = from p in new Class1<Product>()
Console.WriteLine("Query 2");
var query2 = from p in new Class1<Product>()
public string Id { get; set; }
public string Name { get; set; }
public Class1<T> Where(Expression<Func<T, bool>> expression)
Console.WriteLine(" Where called");
public Class1<T> Select<TResult>(Func<T, TResult> expression)
Console.WriteLine(" Select called");