以下是linq查询。在这里,我想添加一个条件。 条件:如果:名字不为空,则选择列表 where(d => d.firstname ==“Firstname”) 其他:选择无条件的所有列表
function Ponits(string Firstname)
{
pointsCore.Categories.SelectMany(c => c.Events).Select(e => new
{
e.Firstname,
e.Surname,
e.EntityNumber,
e.Eventdate
}).ToList()
}
答案 0 :(得分:7)
两个选项:
首先,可选择使用Where
:
var events = pointsCore.Categories.SelectMany(c => c.Events);
if (!string.IsNullOrEmpty(firstName))
{
events = events.Where(e => e.Firstname == firstName);
}
var result = events.Select(e => new { ... });
第二:让你的Where
条款检查firstName
:
var events = pointsCore.Categories.SelectMany(c => c.Events);
.Where(e => string.IsNullOrEmpty(firstName) ||
e.Firstname == firstName)
.Select(e => new { ... });
请注意,由于LINQ中的延迟评估,第一个选项不会涉及获取所有值然后查询;你还在构建一个查询。
答案 1 :(得分:2)
.Where(d => string.IsNullOrEmpty(Firstname) || d.firstname==Firstname)