Asp.net LINQ:检查NullReferenceException

Asp.net LINQ:检查NullReferenceException,asp.net,linq,Asp.net,Linq,在下面的代码中,如何以“良好实践”的方式检查空引用异常 我目前的做法是(但JetBrain ReSharper不接受它,并在以下方面不断警告我:virtualPath实用性.GetFileName(p.SiteURL),这是可以理解的) 其中菜单具有以下结构: public class MultiLevelMenuNodeList { public string Name { get; set; } public string Permission { get; set; } pu

在下面的代码中,如何以“良好实践”的方式检查空引用异常

我目前的做法是(但JetBrain ReSharper不接受它,并在以下方面不断警告我:virtualPath实用性.GetFileName(p.SiteURL),这是可以理解的)

其中菜单具有以下结构:

public class MultiLevelMenuNodeList
 {
  public string Name { get; set; }
  public string Permission { get; set; }
  public string SiteURL { get; set; }
  public string Visibility { get; set; }
  public List<SingleLevelMenuNodeList> ChildNodes { get; set; }
 }

 public class SingleLevelMenuNodeList
 {
  public string Name { get; set; }
  public string Permission { get; set; }
  public string SiteURL { get; set; }
  public string Visibility { get; set; }
  public string TabPosition { get; set; }
 }
公共类多级菜单取消登录
{
公共字符串名称{get;set;}
公共字符串权限{get;set;}
公共字符串SiteURL{get;set;}
公共字符串可见性{get;set;}
公共列表子节点{get;set;}
}
公共类单级菜单列表
{
公共字符串名称{get;set;}
公共字符串权限{get;set;}
公共字符串SiteURL{get;set;}
公共字符串可见性{get;set;}
公共字符串TabPosition{get;set;}
}

提前感谢您的建议和提示。我有点沉迷于stackoverflow:)

一个简单的解决方案是只使用==这是空安全的:

if (primaryMenu.ChildNodes.Any(p =>
        VirtualPathUtility.GetFileName(p.SiteURL) == selectedPage))

(这是假设
GetFileName
本身可以处理空输入;否则将第一个空检查放回。)

resharper显示的警告是什么?@shashkalpesh它显示了可能的“System.NullReferenceException”@Jon Thank:)我将使用它,看看它是如何运行的。是的,当我使用==时,resharper没有显示任何警告。谢谢
public class MultiLevelMenuNodeList
 {
  public string Name { get; set; }
  public string Permission { get; set; }
  public string SiteURL { get; set; }
  public string Visibility { get; set; }
  public List<SingleLevelMenuNodeList> ChildNodes { get; set; }
 }

 public class SingleLevelMenuNodeList
 {
  public string Name { get; set; }
  public string Permission { get; set; }
  public string SiteURL { get; set; }
  public string Visibility { get; set; }
  public string TabPosition { get; set; }
 }
if (primaryMenu.ChildNodes.Any(p =>
        VirtualPathUtility.GetFileName(p.SiteURL) == selectedPage))