Group by With LinQ

Here is Simple Code for understanding Group By in LinQ.

// Group by With Linq
List<string> ls = new List<string>();
using (LinqModel.LinqEntities ST1 = new LinqModel.LinqEntities())
{
    var V = (from State in ST1.State_Master
                group State by State.CountryID into temp
                select new
                {
                   T1 = temp.Key.Value,
                   T2 = temp
                 }).ToList();
    foreach (var c in V)
    {
         for (int i = 0; i < c.T2.ToList().Count; i++)
         {
               ls.Add(c.T2.ToList()[i].StateName);
         }
     }
};
// Group by With Linq using Lambada expression
// Same Result as above
using (LinqModel.LinqEntities ST1 = new LinqModel.LinqEntities())
{
     var vLambada = ST.State_Master.GroupBy(state => state.CountryID).ToList();
     foreach (var state in vLambada)
     {
         for (int i = 0; i < state.Count(); i++)
         {
              ls.Add(state.ToList()[i].StateName);
          }
      }
};
Rpt.DataSource = ls;
Rpt.DataBind();