2010-04-07 32 views
0

我有几列,我想搜索。我的代码可能无法传递任何给定的列进行搜索。因此,对于以下示例,姓氏或名字可能是空字符串。每当我用一个空字符串搜索一列时,它就会扰乱查询。我已经通过检查它是否为空字符串来解决问题,如果它是反查的话。然而,我有很多专栏来搜索,所以如果/ thens会让很多东西变得杂乱无章。有关如何最佳实施的建议?linq到XML查询与潜在的空参数传递

refinedresult = From x In theresult _ 
         Where x.<lastname>.Value.ToLower.Contains(LastName.ToLower.Trim) Or _ 
         x.<givenname>.Value.ToLower.Contains(FirstName.ToLower.Trim) Or    _ 
         Select x 

回答

0

可以构建对执行比较,并返回一个布尔值的x类型的扩展方法。该方法应该将引用字符串与之比较。如果x为null,则仅从扩展方法返回false

能够在空引用上调用扩展方法并且优雅地处理情况非常强大。

+0

我没有很好的工作,但我认为你让我走上正轨。谢谢。 – 2010-04-08 13:24:57