我有一个应该执行以下操作的方法: -从Web服务检索对象列表(按预期工作) -根据几个条件返回这些对象的子集(无效)
private List<AliveDTO> getDeads()
{
List<AliveDTO> DTOs = APIRequests.Instance.GetAliveDTOs();
var deads = DTOs.Where(x =>
x.watchWindowStartTime.CompareTo(DateTime.Now) < 0 ||
x.watchWindowEndTime.CompareTo(DateTime.Now) > 0 &&
DateTime.Now > x.timeReceived.AddMinutes((double)x.NextAliveWithinMinutes));
List<AliveDTO> deadInList = deads as List<AliveDTO>;
return deadInList;
}
如果列表中没有实体符合条件,我希望变量Deads是一个IEnumerable,count == 0,但是我会得到一个空值。
我做错了什么?
答案 0 :(得分:0)
我认为问题是“死者”不会成为名单。这将是一个 IEnumerable 。添加.ToList()Linq命令将使“死角”成为列表类型。我还要稍微重构一下,因为您将在死角下方创建第二个列表。 :)
private List<AliveDTO> getDeads()
{
List<AliveDTO> DTOs = APIRequests.Instance.GetAliveDTOs();
return DTOs.Where(x =>
x.watchWindowStartTime.CompareTo(DateTime.Now) < 0 ||
x.watchWindowEndTime.CompareTo(DateTime.Now) > 0 &&
DateTime.Now > x.timeReceived.AddMinutes((double)x.NextAliveWithinMinutes)).ToList();
}