从LINQ获得的列表中获取特定项目

时间:2014-08-11 07:15:23

标签: c# linq

我有以下代码,

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

2 个答案:

答案 0 :(得分:0)

就像

一样
Session["ApplicationID"]=applications.Select(m => m.applicationId).First();

它会给你第一个applicationId。如果你想根据条件选择applicationId,你可以像

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

并且对于所有applicationid都喜欢

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

答案 1 :(得分:0)

所以你有一个查询,它选择匿名类型中的多个属性,你需要从中选择一个特定的属性来将它写入会话?

Session["ApplicationID"] = applications
    .Select(x => x.applicationId)
    .ToList();  // i would "materialize" it in a collection to avoid side effect due to lazy evaluation

或者您是否希望从中获取特定项目,例如通过sia_name

var sia = applications.FirstOrDefault(x => x.sia_name == "InsertName");
if(sia != null)
    Session["ApplicationID"] =  sia.applicationId;
相关问题