sorting on generic list after using .toarray method
===

I am using following code to bind a paged datasource to repeater control 

      protected void Paging()
        {
            Array q = (Array)Session["q"];
            PagedDataSource objPds = new PagedDataSource();
            objPds.DataSource = q;
            objPds.AllowPaging = true;
            objPds.PageSize = Convert.ToInt32(ddlPageNo.SelectedValue);
    
            objPds.CurrentPageIndex = CurrentPage;
    
            lblCurrentPage.Text = "Page: " + (CurrentPage + 1).ToString() + " of "
               + objPds.PageCount.ToString();
    
            // Disable Prev or Next buttons if necessary
            cmdPrev.Enabled = !objPds.IsFirstPage;
            cmdNext.Enabled = !objPds.IsLastPage;
    
            rptHotels.DataSource = objPds;
            rptHotels.DataBind();
    
        }

where `q` is 


     var q = from a in bh
                    join b in hr on a.HotelCode equals b.hotelCode
                    orderby a.HotelName
                    select new
            {
                a.HotelCode,
                a.ImageURL_Text,
                a.HotelName,
                a.StarRating,
                a.HotelAddress,
                a.Destination,
                a.Country,
                a.HotelInfo,
                a.Latitude,
                a.Longitude,
                b.totalPrice,
                b.totalPriceSpecified,
                b.totalSalePrice,
                b.totalSalePriceSpecified,
                b.rooms
    
            };
    
    
            //rptHotels.DataSource = getres.availableHotels;
    
            Session["q"] = q.ToArray();


now i want to use 

want to sort the array q by `hotelname` or `starRating` .

I am not finding any method like 

    q.sort(); 

or 

    q.orderBy(q->hotelName)







