C# 通过LINQ从列表中获取特定项

C# 通过LINQ从列表中获取特定项,c#,linq,C#,Linq,我有以下代码 var applications = from a in applications1.Entities.ToList() select new { name = a.Attributes["sia_name"].ToString(), applicati

我有以下代码

var applications = from a in applications1.Entities.ToList()
                           select new
                           {
                               name = a.Attributes["sia_name"].ToString(),
                               applicationId = a.Attributes["sia_applicationid"].ToString(),

                               isDraftMode = a.Attributes.Contains("sia_applicationmode") ? a.FormattedValues["sia_applicationmode"].ToString().ToLower() == "draft" ? true : false : false
                           };
在这段代码中,我有一些包含name、applicationid和isdraftmode的应用程序, 现在我想从var应用程序中获取applicationid,以便将其传递给会话

这怎么可能实现呢

 Session["ApplicationID"]=applications
喜欢吗

Session["ApplicationID"]=applications.Select(m => m.applicationId).First();
Session["ApplicationID"]=applications.Select(m => m.applicationId).First(x => x.property == condition);
Session["ApplicationID"]=applications.Select(m => m.applicationId).ToList();
它将为您提供第一个应用程序ID。如果您想根据条件选择applicationId,那么您可以像

Session["ApplicationID"]=applications.Select(m => m.applicationId).First();
Session["ApplicationID"]=applications.Select(m => m.applicationId).First(x => x.property == condition);
Session["ApplicationID"]=applications.Select(m => m.applicationId).ToList();
对于所有的应用程序,我都喜欢这样做

Session["ApplicationID"]=applications.Select(m => m.applicationId).First();
Session["ApplicationID"]=applications.Select(m => m.applicationId).First(x => x.property == condition);
Session["ApplicationID"]=applications.Select(m => m.applicationId).ToList();

所以,您有一个查询,它在匿名类型中选择多个属性,并且您需要从中选择一个特定属性来将其写入会话

Session["ApplicationID"] = applications
    .Select(x => x.applicationId)
    .ToList();  // i would "materialize" it in a collection to avoid side effect due to lazy evaluation
或者您想从中获取特定项目,例如通过sia_名称