以下是linq查询.在这里,我想添加一个条件.条件:如果:Firstname不为空,则选择list where(d => d.firstname =="Firstname") else:选择所有列表无条件
function Ponits(string Firstname)
{
pointsCore.Categories.SelectMany(c => c.Events).Select(e => new
{
e.Firstname,
e.Surname,
e.EntityNumber,
e.Eventdate
}).ToList()
}
Run Code Online (Sandbox Code Playgroud)
两种选择:
首先,可选择使用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 { ... });
Run Code Online (Sandbox Code Playgroud)
第二:让你的Where条款检查firstName:
var events = pointsCore.Categories.SelectMany(c => c.Events);
.Where(e => string.IsNullOrEmpty(firstName) ||
e.Firstname == firstName)
.Select(e => new { ... });
Run Code Online (Sandbox Code Playgroud)
请注意,由于LINQ中的延迟评估,第一个选项将不涉及获取所有值然后查询; 你还在构建一个查询.
| 归档时间: |
|
| 查看次数: |
947 次 |
| 最近记录: |