繁体   English   中英

CS0029 C#无法将类型隐式转换为'string []'

[英]CS0029 C# Cannot implicitly convert type to 'string[]'

我已经初始化了一个字符串数组,然后在foreach循环中尝试执行linq查询并将查询结果存储到已初始化的字符串数组中。

我尝试了ToList()之类的但是它不起作用

public class TierImaegeDefinitionDTO
        {
            public string Tier { get; set; }
            public string[] ImageDefinition { get; set; }
        }
foreach (var tierVal in tierList)
{
                String tier = tierVal.Tier;
                 var imageDefinitionList = (from p in _context.Product
                                            join ti in _context.TierImageMap 
                                            on p.Id equals ti.ProductId join t 
                                            in _context.Tiers on ti.TierType 
                                            equals t.Id
                                           where (p.Id == ProductId) && 
                                           (t.TierType == tier)
                                             select new
                                           {
                                               ti.ImageName,

                                           }).ToList().Distinct();
await _context.SaveChangesAsync();

                tierVal.ImageDefinition = imageDefinitionList;//getting error in this line
            }

ImageDefinition是字符串的数组[]。 ToList()将返回列表<T>,和鲜明将返回的IEnumerable <T>。 您需要更改通话以使其以

.Distinct().ToArray()

另一个问题是您正在选择一个对象,因此您的.ToList()实际上返回的是List <匿名类型>。 相反,您可以只选择ti.ImageName

var imageDefinitionList = 
    (from p in _context.Product 
        join ti in _context.TierImageMap on p.Id equals ti.ProductId 
        join t in _context.Tiers on ti.TierType equals t.Id 
        where (p.Id == ProductId) && (t.TierType == tier) 
        select ti.ImageName
    ).Distinct().ToArray();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM