CS0029 C#无法将类型隐式转换为';字符串[]和#x27;

CS0029 C#无法将类型隐式转换为';字符串[]和#x27;,c#,asp.net-mvc,C#,Asp.net Mvc,我已经初始化了一个字符串数组,然后在foreach循环中我尝试执行一个linq查询,并将查询结果存储到初始化的字符串数组中 我试过了ToList()之类的,但它不起作用 public class TierImaegeDefinitionDTO { public string Tier { get; set; } public string[] ImageDefinition { get; set; } } forea

我已经初始化了一个字符串数组,然后在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()将返回List,Distinct将返回IEnumerable。你需要改变你的电话,以便它以

.Distinct().ToArray()
另一个问题是,您正在选择一个对象,因此.ToList()实际上正在返回列表。相反,您可以只选择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();

没有人会读取异常消息:(“无法将类型隐式转换为'string[]”表示CLR无法将
imageDefinitionList
类型的变量
IEnumerable
隐式转换为
string[]
变量,以便能够将其分配给
tierVal.ImageDefinition
@Adithya欢迎来到StackOverflow。在这里表示感谢的最佳方式是将帮助您的答案标记为已接受。如果您不知道如何做,请查看