不能隐含转换类型System.Collections.GenericList <anonymoustype#1>

时间:2017-05-05 16:33:02

标签: c# linq

请耐心等待我是linq的新手,对于我不理解的一些错误有疑问,我们将不胜感激。

  1. 我在问题标题中收到的错误。
  2. 我的childproduct变量单独返回每个字符我希望它们是productId和Childtext参数的字符串版本。
  3. 代码:

    public class AOAPlusChildModel
    {
        public List<string> LongName { get; set; }
        public List<string> Text { get; set; }
        public List<string> ProductId { get; set; }
    
        public static List<AOAPlusChildModel> GetChildProducts() 
        {
            List<AOAPlusChildModel> cp = new List<AOAPlusChildModel>();
    
            List<AoaUserDefinedVWGetAOAPlusProducts> ChildProductsLists = AoaSvcClient.Client.Context.AoaUserDefinedVWGetAOAPlusProductss.Where(a => a.MasterProductFlag == false && a.Affiliate == "VA").ToList();
    
            var childProducts = ChildProductsLists.SelectMany(p => p.LongName, (id, childtext) =>
                                                     new { ProductId = id.ProductId, Text = childtext }).ToList();
            cp = childProducts.ToList();                               
    
            return cp;
        }
    }  
    

1 个答案:

答案 0 :(得分:2)

您的变量wsgi.pycp,但linq查询正在投射匿名类型。而不是创建新的匿名类型创建新的List<AOAPlusChildModel>

AOAPlusChildModel

跟随错误的原因是您执行return ChildProductsLists.SelectMany(p => p.LongName, (id, childtext) => new AOAPlusChildModel { ProductId = id.ProductId, Text = childtext }).ToList(); ,它现在基本上返回一个字符串集合 - 您尝试将此字符串集合分配为新的ChildProductsLists.SelectMany(p => p.LongName)对象,该对象不会保留{{1} }}属性,但AOAPlusChildModel属性。

我认为你的模型应该是这样的:

string