Asp.net 使用LINQ查询

Asp.net 使用LINQ查询,asp.net,linq,Asp.net,Linq,我有一个linq查询 var query = (from s in dc.ClassInfos where s.ClassName == tbSubject.Text select new{ location = s.ClassLocation, Date = s.ClassDate }); 现在我想把位置值赋给一个局部变

我有一个linq查询

var query = (from s in dc.ClassInfos
                 where s.ClassName == tbSubject.Text
                 select new{
                  location = s.ClassLocation,
                  Date = s.ClassDate
                 });
现在我想把位置值赋给一个局部变量。你能帮我怎么做吗?

var localVar=new List();
var localVar = new List<string>();  

foreach (var item in query)
{
  localvars.add(item.location);
}
foreach(查询中的var项) { localvars.add(item.location); }
var localVar=new List();
foreach(查询中的var项)
{
localvars.add(item.location);
}
但我会写

var location = (from s in dc.ClassInfos
                where s.ClassName == tbSubject.Text
                select s.ClassLocation).FirstOrDefault();
因为如果只使用
位置
,则无需选择
日期

但我会写

var location = (from s in dc.ClassInfos
                where s.ClassName == tbSubject.Text
                select s.ClassLocation).FirstOrDefault();

因为如果只使用
位置

,则无需选择
日期
,因此查询将返回匿名类的
IEnumerable
,而不仅仅是单个值。如果要指定第一个位置值(如果有),可以执行以下操作:

var location =  query.First().location;
另一方面,如果您希望列表中的所有位置,则应该可以:

var locations =  query.Select( x=> x.location).ToList();

查询返回匿名类的
IEnumerable
,而不仅仅是单个值。如果要指定第一个位置值(如果有),可以执行以下操作:

var location =  query.First().location;
另一方面,如果您希望列表中的所有位置,则应该可以:

var locations =  query.Select( x=> x.location).ToList();

哪个位置?您可能有多个结果。哪个位置?你可以得到多个结果。有很多更优雅的方法可以做到这一点。而且,我认为这并不能回答OPs的问题。有很多更优雅的方法可以做到这一点。而且,我认为这并不能回答这个问题。