从 LINQ 查询中获取一个字段值

Get one field value from LINQ query

我需要在此 linq 查询中获取 q2.RoomId 的一个值,如下所示,并将其传递给字符串变量。是否可以为 select 设置别名列名?

var result = from q1 in _db.DormApplications
              join q2 in _db.DormRooms
              on q1.DormRoomId equals q2.Id
              where q1.Poster ==  username && q1.Review == EnableType.YES  
              && now > q1.Sdate && now <q1.Edate
              select new { q1.Name, q1.Sdate, q1.Edate, q1.DormRoomId, 
              q2.RoomId };

我试过这个得到 q2.RoomId ,

 String room = result[4].ToString();

但是还是不行,请问有人能帮帮我吗?

如果您知道查询只会 return 一行,您可以这样写:

var result = (from q1 in _db.DormApplications
              join q2 in _db.DormRooms
                on q1.DormRoomId equals q2.Id
              where 
                 q1.Poster ==  username && q1.Review == EnableType.YES  
                 && now > q1.Sdate && now <q1.Edate
              select 
                new { 
                       q1.Name, 
                       q1.Sdate, 
                       q1.Edate, 
                       q1.DormRoomId, 
                       q2.RoomId 
                    }).FirstOrDefault();
var roomId = result.RoomId;
var Name = result.Name;