IF声明未按预期工作

时间:2017-06-23 14:31:36

标签: c#

我的var _getData = db.EventTable.Where(x => x.EventID == id && x.Town == town).ToList(); if (_getData != null) { foreach (var e in _getData) { // some logic here to update the event etc } } else { // some logic to create an event } 声明没有达到预期效果,这让我很烦恼。我不确定我做错了什么。有人可以对此有所了解吗?

else

_getData为空时,我的代码永远不会访问A*x = b块,我不知道为什么会这样。我需要它来命中else块以便在数据库中创建一个事件。

我做错了什么?

谢谢

4 个答案:

答案 0 :(得分:5)

ToList()无法返回null为空列表:

if (_getData.Any()) 
{
  foreach (var e in _getData)
  { 
     // some logic here to update the event etc
  }   
}
else 
{
  // some logic to create an event
}

答案 1 :(得分:2)

即使没有符合条件的行,也会返回没有条目的列表。

解决方案:

config.hpp

为了防止将来出现类似错误,我强烈建议命名这样的变量:

if(_getData.Any())
{
    ...

答案 2 :(得分:1)

由于您正在调用ToList(),因此它将创建一个存储在_getData变量中的List。

尝试通过以下方式检查此列表中是否存在项目:

if (_getData.Any())
{
}

答案 3 :(得分:1)

因为_getData永远不会为NULL。如果未找到数据,则实体框架不返回NULL。即使使用ZERO项目,它也会始终返回一个列表。

您应该检查_eventData的长度,以确定您是否有任何回复。