linq to sql 使用 lambda 连接多个列需要使用 SelectMany 方法,该方法可以将多个列中的值组合成一个新对象。具体来说,可以使用 SelectMany 方法将多个列中的值映射到一个新的匿名类型,然后使用 Select 方法将匿名类型中的每个字段映射到一个新的对象。
以下是一个示例代码:
var result = from row in dataContext.MyTable
select new
{
Name = row.Name,
Age = row.Age,
City = row.City
};
var result2 = result.SelectMany(x =>
{
return x.Age > 20
? new[]
{
x.Name,
x.Age,
x.City
}
: new[]
{
x.Name,
x.City
};
});
在上述代码中,首先使用 Select 方法将每个字段映射到一个新的对象,该对象包含 Name、Age 和 City 字段。然后使用 SelectMany 方法将多个列中的值映射到一个新的匿名类型,该匿名类型包含 Name、Age 和 City 字段。在 SelectMany 方法中,使用 lambda 表达式来筛选出需要映射的字段,如果 Age 字段的值大于 20,则将 Name、Age 和 City 字段映射到一个新的匿名类型中,否则将 Name 和 City 字段映射到一个新的匿名类型中。
最终,result2 变量将包含一个 IEnumerable<AnonymousType> 类型的匿名对象,该对象包含 Name、Age 和 City 字段,这些字段来自于原始数据表中 Age 字段的值大于 20 的记录。
领取专属 10元无门槛券
手把手带您无忧上云