我需要根据以下场景编写LINQ表达式:
public class Meeting
{
public int Id { get; set; }
public DateTime Date { get; set; }
public bool Selected { get; set; }
}
List<Meeting> Meetings
Run Code Online (Sandbox Code Playgroud)
使用LINQ表达式,如何检索在第一个被选中之前发生的元组合?
例如,在下面的liste中,我需要检索会议ID 2.
你可以使用TakeWhile和LastOrDefault:
var meeting = Meetings.TakeWhile(m => !m.Selected)
.LastOrDefault();
if (meeting != null)
{
// Use the meeting
}
else
{
// The first meeting was selected, or there are no meetings
}
Run Code Online (Sandbox Code Playgroud)
TakeWhile当它碰到与谓词不匹配的第一个项目时基本上会停止 - Where换句话说就像是早期停止的那个项目.
你需要小心订购 - 你几乎假设有一堆未经选择的会议,其次是选定的会议.