Consider this where I have a class of Linq table in which I want to query this object in foreach statement:

```
      IQueryable< tab_policy> Result=from c in db.tab_policy select c;

      foreach(int i=0;i<3;i++)
      {
      Result = from c in Result
                 join d in db.tab_reg_type_one_to_many.Where(a => a.reg_id==i)
                on c.poli_id equals d.poli_id
                 select c;
       }

```

How can I change Result variable in each iteration based on value of previous iteration??? 
Value I get in this example only equals to the last iteration not all iterations together, while in this case in each iteration Result is changing inside foreach.
While when I use this iteration without foreach like follow it works correctly.

```
       Result = from c in Result
                 join d in db.tab_reg_type_one_to_many.Where(a => a.reg_id==0)
                on c.poli_id equals d.poli_id
                 select c;
      Result = from c in Result
                 join d in db.tab_reg_type_one_to_many.Where(a => a.reg_id==1)
                on c.poli_id equals d.poli_id
                 select c;
      Result = from c in Result
                 join d in db.tab_reg_type_one_to_many.Where(a => a.reg_id==2)
                on c.poli_id equals d.poli_id
                 select c;

```