CS0029 C#无法将类型隐式转换为';字符串[]和#x27;
我已经初始化了一个字符串数组,然后在foreach循环中我尝试执行一个linq查询,并将查询结果存储到初始化的字符串数组中 我试过了ToList()之类的,但它不起作用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
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。在这里表示感谢的最佳方式是将帮助您的答案标记为已接受。如果您不知道如何做,请查看