这是我的代码:
firstAnswer = p.Answers.Select(z => z.vountcount, z.isSelected).FirstOrDefault()
在select语句中,它返回语法错误。我试图获得更多的一列。
答案 0 :(得分:3)
var firstAnswer = p.Answers.FirstOrDefault().Select(new { VountCount = z.vountcount, IsSelected = z.isSelected });
您必须指定type。 Var是允许您实例化anonymous type的关键字。
答案 1 :(得分:1)
您必须创建一个类型或使用匿名类型来捕获该结果:
匿名类型:
var firstAnswer = p.Answers.Select(z => new { vountcount = z.vountcount, isSelected = z.isSelected }).FirstOrDefault();
显式命名在大多数情况下是可选的。 在此处使用var关键字可确保您可以分配该匿名结果。如果你想把这个结果交给某个方法,那么匿名类型就会变得很困难。
专用类型:
public class ReducedAnswer
{
public int vountcount { get; set; }
public bool isSelected { get; set; }
public ReducedAnswer()
{
}
}
ReducedAnswer firstAnswer = p.Answers.Select(z => new ReducedAnswer { vountcount = z.vountcount, isSelected = z.isSelected }).FirstOrDefault();
保持接近典型的LINQ模型类和命名。请注意firstAnswer
前面的类型的使用。您也可以在此处使用var
。