linq到xml查询,传递了潜在的空参数

时间:2010-04-07 18:56:35

标签: vb.net linq-to-xml

我想要搜索几列。对于要搜索的给定列,我的代码可能无法传递任何内容。因此,对于下面的示例,lastname或firstname可能是空字符串。每当我搜索一个空字符串的列时,它就会混乱查询。我已经通过检查它是否是一个空字符串来修复问题,如果是,则不查询它。但是我有很多要搜索的列,所以这将是很多if / thens并使事情变得混乱。关于如何最好地实施的任何建议?

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

1 个答案:

答案 0 :(得分:0)

您可以在执行比较的x类型上构建扩展方法并返回bool。该方法应该将引用字符串与之进行比较。如果x为null,则只需从扩展方法返回false

在一个空的引用上调用扩展方法并优雅地处理这种情况的能力非常强大。