C# 在C中将匿名类型转换为列表#

C# 在C中将匿名类型转换为列表#,c#,anonymous,C#,Anonymous,我正在尝试将匿名类型转换为列表,但遇到如下调用错误 类型的未处理异常 mscorlib.dll中出现“System.Reflection.TargetInvocationException” 这里“all”是匿名类型,castprove是列表,muapprovelist是类,它们在同一个视图模型中声明。有没有我做错的指针?这大概是与某种类型的视图和匿名类型(即内部)的动态编译相关的可访问性问题。也许一个实用的解决方案是在这种情况下不使用匿名类型: var all = from a in Fcti

我正在尝试将匿名类型转换为列表,但遇到如下调用错误

类型的未处理异常 mscorlib.dll中出现“System.Reflection.TargetInvocationException”


这里“all”是匿名类型,castprove是列表,muapprovelist是类,它们在同一个视图模型中声明。有没有我做错的指针?

这大概是与某种类型的视图和匿名类型(即
内部
)的动态编译相关的可访问性问题。也许一个实用的解决方案是在这种情况下不使用匿名类型:

var all = from a in Fcticuclist
      join b in crlist on a.Ref_CID equals b.C_ID
      select new muapprovelist {
          Id = a.ID, MU_Identifier = b.MU_Identifier,
          Status = a.Status };

foreach (var item in all)
{
    castapprove.Add(item);
}
甚至可能:

var castapprove = (from a in Fcticuclist
      join b in crlist on a.Ref_CID equals b.C_ID
      select new muapprovelist {
          Id = a.ID, MU_Identifier = b.MU_Identifier,
          Status = a.Status }).ToList();

或者:将此代码从视图区域移到作为主预编译程序集一部分的代码中。

如何声明
castprove
?这是什么样的名单?您是否正在使用
动态
?我猜这里有
dynamic castprove=…
,在这种情况下。。。是的,我不认为它会起作用。
targetingException
通常有一个
InnerException
,它可以解释到底出了什么问题(以及哪里出了问题)。请把这些信息也发出去。
muapprovelist
是该列表中元素的正确类型吗(因为它听起来像列表本身)?不应该
new{b.MU_Identifier,a.Status,a.ID}
be
new{MU_Identifier=b.MU_Identifier,Status=aStatus,a.ID}
,编译器采用您提供的属性名称(
MU_Identifier
Status
ID
)@RenéVogt谢谢,我不确定。我尝试了第二种解决方案,效果很好,非常感谢。这对我来说是一次很好的学习。
var castapprove = (from a in Fcticuclist
      join b in crlist on a.Ref_CID equals b.C_ID
      select new muapprovelist {
          Id = a.ID, MU_Identifier = b.MU_Identifier,
          Status = a.Status }).ToList();