2

我在 S/O 上看到过类似的错误,但修复对我来说并不直接。

Cannot implicitly convert type 'System.Collections.Generic.List<AnonymousType#1>' to 'System.Collections.Generic.List<DTD.ManagedMPS.Core.EtchVectorShapes>'

我需要做什么才能将此 linq 查询作为我的特定列表传递出去?

public List<EtchVectorShapes> GetEtchVectors(List<ViolationType> list, List<ExcelViolations> excelViolations)
    {
        var etchVector = new List<EtchVectorShapes>();

        etchVector = (from vio in list
                        where excelViolations.Any(excelVio => vio.VioID.Formatted.Equals(excelVio.VioID.ToString()))
                            && excelViolations.Any(excelVio => vio.RuleType.Formatted.Equals(excelVio.RuleType))
                            && excelViolations.Any(excelVio => vio.VioType.Formatted.Equals(excelVio.VioType)) 
                            && excelViolations.Any(excelVio => vio.EtchVects.Any(x => x.XCoordinate.Equals(excelVio.XCoordinate)))
                            && excelViolations.Any(excelVio => vio.EtchVects.Any(y => y.YCoordinate.Equals(excelVio.YCoordinate)))

                        select new
                        {
                            EtchVectors =  vio.EtchVects  // firstOrDefault.Formatted
                        }).ToList();


        return etchVector;
    }
4

2 回答 2

2

您需要将选择更改为select new EtchVectorShapes{EtchVectors = vio.EtchVects}

您也不需要将etchVector变量初始化为新列表。

于 2013-05-11T00:16:52.540 回答
0

正确EtchVectorShapes映射到excelViolations??? 你意识到这些是不同的类型吗?

也像其他答案一样,您需要.ToList()在查询末尾添加以使其成为 List<>

于 2013-05-11T00:19:14.737 回答