控制器中的action方法接收一个值,就像几个字母一样。代码检查表中是否包含任何这些字母。我正在使用此代码执行该任务:
var result = db.People.Where(b => b.Name.ToUpper().Contains(filter.ToUpper()));
但是,当没有任何匹配的字母时,如何检查result
变量是空还是空?我对此进行了测试,但它无法正常工作!
If(result == ""){
// Do something
}
我想使用Viewbag发送一条消息,表明没有匹配或者可能在View中进行此检查。我在一些AJAX和部分视图中使用它并且它工作得很完美,但我只想在没有任何匹配时显示消息。检查result
值是空还是空的最佳方法是什么?
答案 0 :(得分:2)
最简单的方法是使用CoordinatorLayout
:
android:fitsSystemWindows="false"
来自IEnumerable上的MSDN:
<强>任何()强>
确定序列是否包含任何元素。
完全符合您的需要。
答案 1 :(得分:1)
试试这个,使用FirstOrDefault
它会给你结果中的第一条记录,否则如果没有从查询中得到结果,它会返回默认值null
,
var result = db.People.Where(b => b.Name.ToUpper().Contains(filter.ToUpper())).FirstOrDefault();
If(result == null){
// Do something
}
或者,如果您想使用此结果,操作代码中的某些内容,则可以使用ToList()
。它将返回值列表,如果查询没有产生任何内容,则列表计数将为0。
var result = db.People.Where(b => b.Name.ToUpper().Contains(filter.ToUpper())).ToList();
If(result.Count == 0){
// Do something
}
答案 2 :(得分:1)
您的代码无效,因为如果您想返回一个字符串,代码返回一个对象而不是一个字符串,那么您必须使用“Select”子句来选择一个特定的字段,并且如果您想要检查相同的代码然后修改:
var result = db.People.Where(b =&gt; b.Name.ToUpper()。包含(filter.ToUpper()))。ToList(); if(结果!= null&amp;&amp; result.Count&gt; 0)
它适合你。
答案 3 :(得分:1)
对于IEnumerable,我们可以使用Any(),您的代码可以写成
if(!db.People.Where(b => b.Name.ToUpper().Contains(filter.ToUpper())).Any() {
// do some thing
}