如何得到一个以上的列在Linq

本文关键字:Linq 何得 一个以 | 更新日期: 2023-09-27 17:49:37

下面是我的代码:

firstAnswer = p.Answers.Select(z => z.vountcount, z.isSelected).FirstOrDefault()

在select语句中,返回语法错误。

如何得到一个以上的列在Linq

var firstAnswer = p.Answers.FirstOrDefault().Select(new { VountCount = z.vountcount, IsSelected = z.isSelected });

必须指定类型。Var是允许您实例化匿名类型的关键字。

您必须创建一个类型或使用匿名类型来捕获该结果:

匿名类型:

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