شما از کوئریتون خروجی یک Anonymous گرفتید
select new { p.matn };


چون نمیدونستم Type های شما چی هست براتون یه نمونه گزاشتم با توجه به نمونه من کدتون رو ویرایش کنید.
            var persons = new List<person>
{
new person{Id=2,Name="ad"},
new person{Id=3,Name="asd"},
new person{Id=4,Name="add"},
new person{Id=5,Name="aad"}
};


StringBuilder str = new StringBuilder();

var q = from p in persons
orderby p.Id
select new test{Num= p.Id };

foreach (test a in q)
{
str.Append(a.Num.ToString());
}
MessageBox.Show(str.ToString());
}



class person
{
public int Id { get; set; }
public string Name { get; set; }

}

class test
{
public int Num { get; set; }
}