C# 无法隐式转换类型";系统Linq.IQueryable<;字符串>&引用;存在显式转换(是否缺少转换?)

C# 无法隐式转换类型";系统Linq.IQueryable<;字符串>&引用;存在显式转换(是否缺少转换?),c#,linq,C#,Linq,如何从ParentProductsList列表中选择特定项?我尝试将此错误显示为无法将类型“System.Linq.IQueryable”隐式转换为“System.Linq.IQueryable”。存在显式转换,是否缺少强制转换 [HttpGet] public ActionResult Index() { AOAPlusViewModel AOAPlusViewModel = new AOAPlusViewModel(); IQueryable<AoaUserDefinedVW

如何从ParentProductsList列表中选择特定项?我尝试将此错误显示为无法将类型“System.Linq.IQueryable”隐式转换为“System.Linq.IQueryable”。存在显式转换,是否缺少强制转换

[HttpGet]
public ActionResult Index()
{
  AOAPlusViewModel AOAPlusViewModel = new AOAPlusViewModel();

  IQueryable<AoaUserDefinedVWGetAOAPlusProducts> ParentProductLists =               
    AoaSvcClient.Client.Context.AoaUserDefinedVWGetAOAPlusProductss
                               .Where(a => a.MasterProductFlag == true);
  if (bool)
  {
    ParentProductLists = ParentProductLists.Where(p => p.Affiliate == "MN")
                                           .Select(p => p.LongName);   
  }
}           
[HttpGet]
公共行动结果索引()
{
AOAPlusViewModel AOAPlusViewModel=新的AOAPlusViewModel();
IQueryable ParentProductList=
AoaSvcClient.Client.Context.aoauserdefinedvwGetAOAPlupsProducts
。其中(a=>a.MasterProductFlag==true);
如果(bool)
{
ParentProductList=ParentProductList.Where(p=>p.Affiliate==“MN”)
.选择(p=>p.LongName);
}
}           

parentProductList
的类型为
IQueryable
。You's code在
LongName
上执行
Select
,返回一个
IQueryable
,您试图将其分配回
ParentProductList
这两种类型之间没有隐式转换,因此出现错误。
尝试将
选择中的返回值分配给一个新变量。

本质上,这与Andy Lamb已经给出的答案相同,但有一个示例代码用于说明

IQueryable<string> LongNameList = ParentProductLists.Where(p => p.Affiliate == "MN")
                                              .Select(p => p.LongName);

您正在选择的名称可能是一个字符串。这是您想要的吗?因为您要将它放入泛型类型的变量
aoauserdefinedvwGetAOAPlupProducts
。您应该在其后加一个分号。另外,将Select FirstOrDefault()更改为Yes p.LongName是一个字符串。我正在尝试根据附属状态筛选单个ParentProducts并选择其p.LongName属性。如果将select更改为where子句(或将其包含在第一个子句中的条件),是否最终得到正确的结果?似乎您的意图是用过滤结果替换IEnumerable,而不是只包含LongName的IEnumerable。可能您也想在resultset上使用.First()/.Single(),但您的问题非常不清楚,并且您的代码段不完整。.Select(p=>p.LongName)将集合元素转换为字符串。因此,它抛出了一个例外。我想将查询结果分配给我的viewmodel,以便在我的视图中进行渲染。谢谢您,该示例很好地工作了,并且让我清楚地了解了我做错了什么。
ParentProductLists = ParentProductLists.Where(p => p.Affiliate == "MN");